Liste d'un élément événements
Est-il un moyen de trouver tous les événements pour un élément en javascript? ou un moyen de séparer tous les événements à partir d'un élément?
Grâce.
OriginalL'auteur errorhandler | 2010-10-11
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas moyen de le faire directement à l'aide de javascript.
Jquery a un couple de fonctions, de garder une trace de ces données.
Un "pur" façon de le faire est de changer la méthode addEventListener/attachEvent de la fonction par le biais de prototypage (de la recherche à propos de javascript prototype de trucs, pas le cadre).
Ou si vous avez une fonction personnalisée d'accepter l'ajout/suppression d'événements vous pouvez la régler.
Bien, c'est tout.
Salut errorhandler, je soupçonne que vous étiez à l'aide d'une fonction personnalisée pour gérer IE addEvent. Eh bien, je pense que vous pouvez régler cette fonction, l'ajout d'un mondial var/objet avec les données d'événement - élément cible, cible de l'événement, et la fonction de rappel, et puis dans cette coutume var/objet, ajouter quelques fonctions pour récupérer les données nécessaires.
Recréer l'élément avec outerHTML est une autre option pour supprimer la liaison de tous les événements...
OriginalL'auteur Dave
Bien sûr !
Jetez un oeil à ce à lier/délier les événements
http://api.jquery.com/category/events/
et l'utilisation de ce fragment de code jQuery pour obtenir tous les événements liés à un élément sous la forme d'un hashset de paires de clés "eventname/délégué de fonction"
est-il un moyen de le faire sans jQuery?
Eh bien, autant que je sache, tout ce qui est nécessaire est d'inclure jQuery API. Que morceau de code devrait fonctionner aussi pour les événements qui ne sont pas directement liés par jQuery.
il est encore besoin de jQuery pour faire ça...
Le code de cette réponse ne fonctionne que jusqu'à jQuery 1.7.2. À partir de jQuery 1.8 vous devez utiliser ce lieu:
$._data(elem, 'events')
. Notez également qu'il est censé être utilisé uniquement en interne, de sorte que vous devez l'utiliser à des fins de débogage seulement, et ce n'est pas l'avenir.OriginalL'auteur NinjaCross
Si vous ne voulez pas ot utiliser jQuery, une façon rapide et sale (et il y en aura forcément un meilleur) serait de faire une boucle par l'élément de paramètres et de vérifier les fonctions qui commencent par " on " (onclick, etc).
ne fonctionne pas pour moi 🙁
OriginalL'auteur Gus