78 votes

Comment vérifier si le code JavaScript des écouteurs d'événement/gestionnaires attaché à un élément ou d'un document?

J'ai essayé de chercher en ligne, mais ne ressemble pas je peut formuler la requête de recherche correctement.

Donc en tant que simple qu'il y paraît, comment puis-je, avec jquery ou javascript liste de tous les gestionnaires ou des écouteurs d'événement qui sont attachés à l'élément(s)/document/fenêtre ou présents dans les dom.

Vous vous demandez juste.

Je vous remercie à l'avance.

48voto

Laimoncijus Points 3453

En jQuery avant 1.8, essayez d'utiliser $("#element").data("events")

EDIT:

Il est également jQuery extension: listHandlers

32voto

Luke Points 1780

Lors du débogage, si vous voulez juste voir si il y a un événement, je vous recommande d'utiliser Visual Cas ou les Éléments de la section de Chrome Developer Tools: sélectionnez un élément et de chercher des "Écouteurs d'Événement sur le bas à droite.

Dans votre code, si vous utilisez jQuery avant la version 1.8, vous pouvez utiliser:

$(selector).data("events")

pour obtenir les événements. À partir de la version 1.8, c'est abandonnées (voir ce bug billet). Vous pouvez utiliser:

$._data(element, "events")

mais ce n'est pas recommandé, car il est interne jQuery structure, et pourrait changer dans les versions futures.

Cette question a quelques réponses qui pourraient vous être utiles, mais aucun d'entre eux sont particulièrement élégant de la même manière qu' $(selector).data("events") a été.

22voto

Tomas Jakubco Points 41

Sans jQuery:

si les auditeurs ont été ajoutés à l'aide de elem.méthode addEventListener (), il n'est pas facile à la liste de ces auditeurs. Vous pouvez remplacer le EventTarget.méthode addEventListener (), en l'enveloppant avec votre propre. Ensuite, vous aurez l'information, ce que les auditeurs ont été enregistrés.

var f = EventTarget.prototype.addEventListener; // store original
EventTarget.prototype.addEventListener = function(type, fn, capture) {
  this.f = f;
  this.f(type, fn, capture); // call original method
  alert('Added Event Listener: on' + type);
}

Exemple de travail que vous pouvez trouver à http://jsfiddle.net/tomas1000r/RDW7F/

3voto

Mark Points 178

Je viens de découvrir événement visuel 2:

http://www.sprymedia.co.uk/article/Visual+Cas+2

allez dans le "faire aller la section" et faites glisser le lien de texte à vos signets de la barre d'outils accéder à une page qui contient des événements et cliquez sur le signet

testé dans FF Mac

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