193 votes

tester si le gestionnaire d’événements est lié à un élément dans jQuery

Est-il possible de déterminer si un élément possède un gestionnaire click, ou un changement de gestionnaire ou de tout type de gestionnaire d’événements lié à l’aide de jQuery ?

Par ailleurs, est-il possible de déterminer combien cliquez sur gestionnaires (ou sous quelque forme des gestionnaires d’événements), il a pour un type donné d’évènement, et quelles fonctions sont dans le cas des gestionnaires ?

141voto

redsquare Points 47518

vous pouvez obtenir cette information à partir du cache de données.

connecter à la console (firebug, ie8)

ou parcourir les

Une autre façon est de vous pouvez utiliser le suivant bookmarklet , mais évidemment cela n’aide pas lors de l’exécution.

131voto

SJG Points 751

Meurtre au large de la liaison lorsqu’il n’existe pas encore n’est pas la meilleure solution mais semble assez efficace ! La deuxième fois vous « cliquez » vous pouvez savoir avec certitude qu’il ne va pas créer une liaison double.

J’utilise donc die() ou unbind() comme ceci :

ou

ou dans les versions récentes de jQuery :

35voto

Sebastien P. Points 461

J’ai écrit un plugin appelé hasEventListener qui fait exactement cela :

http://github.com/sebastien-p/jQuery.hasEventListener

J’espère que cela aide.

19voto

Grsmto Points 1357

Cette solution n'est pas plus pris en charge depuis jQuery 1.8 que l'on peut lire sur le blog ici:

$(element).de données("événements"): C'est maintenant retiré dans la 1.8, mais vous pouvez toujours obtenir de l' les événements de données à des fins de débogage via $._data(élément, "les événements"). Notez que ce n'est pas pris en charge interface publique; les données réelles les structures peuvent changer incompatibilité de version en version.

Donc, vous devez supprimer la liaison/relier ou de tout simplement, utiliser un booléen pour savoir si votre événement a été attaché ou pas (ce qui est à mon avis la meilleure solution).

16voto

jtromans Points 569

Je pense que cela pourrait avoir modifié avec jQuery 1.9. *

Je trouve que la c’est la seule chose qui fonctionne pour moi en ce moment :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X