est-il possible d'ajouter un observateur à un élément DOM déclenché sur les modifications apportées à la visibilité (c'est-à-dire des appels vers show () code> et masquer () code>)? Merci! P>
4 Réponses :
Il n'est pas possible de sortir de la boîte que je connaisse, mais si des modifications se produisent via JQuery, vous pouvez facilement ajouter vous-même le suivi en utilisant un événement personnalisé comme celui-ci:
// save the jquery.show() method
$.prototype.base_show = $.prototype.show;
// provide your own that trigger the event then call the original one
$.prototype.show = function(speed, easing, callback) {
// call your custom event, add any parameters you need there
$(window).trigger('on_jquery_show'/*, params you need*/);
// now call the "real" show method
$.prototype.base_show(speed, easing, callback);
// return this so you can chain it
return this;
};
// add some callback to that custom event
$(window).bind('on_jquery_show', function() { console.log('show !'); });
// it works !
$('#some_div').show().show();
Oui, vous pouvez:
Par exemple: P>
$('#divID').show('slow', function() {
// Animation complete.
});
Alors comment utiliser: $ ('# divid'). Afficher ('lent', fonction () {// Animation complète.}); Code> ont appelé si vous faites par exemple faire tout ce que vous faites. > div code> s visible avec: $ ('div'). Afficher (); code>? C'est un rappel sur l'achèvement de ce spectacle particulier / masquage, pas un auditeur d'événement qui surveille les modifications apportées à la visibilité de cet élément.
Si vous souhaitez observer tout appel em> à puis à l'aide du .Show () code> ou .hide () code> et avoir accès à jQuery 1.5+ que vous pourriez avoir pu Utilisez jquery.sub () code> pour créer une copie de la jQuery objet de remplacement de la valeur par défaut .show () code> ou hide () code> actions. . () code> copier p>
+1 Excellente réponse. Je n'avais pas encore vu cela à JQuery 1.5+. Je vais certainement l'utiliser à un moment donné de l'avenir pas trop lointain.
En supposant que vous montrez et cachez à l'aide des mécanismes de jQuery, vous pouvez essayer d'utiliser le Query en direct A > Plugin. P>
La requête en direct a également la capacité de
feu une fonction (rappel) quand il
correspond à un nouvel élément et un autre
fonction (rappel) pour quand un
L'élément n'est plus apparié. P>
blockQuote>
Je me demande si vous pouvez essayer ceci pour style.display? Stackoverflow.com/Questions/ 1029241 / ...