Y a-t-il un moyen de trouver tous les événements d'un élément de JavaScript? ou un moyen d'engager tous les événements d'un élément? p>
Merci. P>
3 Réponses :
Bien sûr! Jetez un coup d'œil à cela pour lier / un effort d'événements http://api.jquerery.com/category/events/ et utilisez ce fragment de code JQuery pour obtenir tous les événements liés à un élément sous la forme d'un hashset de clavier "EventName / Fonction Déléguate"
jQuery(elem).data('events');
Y a-t-il un moyen de le faire sans jQuery?
Eh bien, Afaik Tout est nécessaire, c'est d'inclure l'API de JQuery. Ce chunk de code devrait également travailler pour des événements non directement liés par JQuery.
Le code de cette réponse ne fonctionne qu'à JQuery 1.7.2. À partir de jQuery 1.8, vous devez l'utiliser à la place: $ ._ Data (elem, "événements") code>. Notez également qu'il est censé être utilisé uniquement en interne, vous devez donc l'utiliser à des fins de débogage uniquement, et ce n'est pas la preuve future.
Si vous ne voulez pas utiliser OT utiliser JQuery, une manière rapide et sale (et il y aurait bien d'être meilleur) serait de boucler les paramètres de l'élément et de rechercher des fonctions qui commencent par «ONCLICK, etc.) .
var el = document.getElementById('elementid') ; el.onclick = function(e) { console.log('Clicked!') ; } ; // Attached test event. if(typeof(el)=='object') { for(var i in el) { if(i.substr(0,2) == 'on' && typeof(el[i])=='function') { el[i] = function() {} ; // Unbind with null function. } } }
Il n'y a pas de moyen de le faire directement à l'aide de JavaScript. P>
jQuery a quelques fonctions pour suivre les données de ces données. P>
Un moyen "pur" de faire est de modifier la fonction AddeventListener / AttachEvent via le prototypage (recherche sur le prototype JavaScript, pas le cadre). P>
ou si vous avez une fonction personnalisée pour additionner / supprimer des événements, vous pouvez l'accorder. P>
Eh bien, c'est tout. P>
J'utilise une fonction personnalisée sur Addevents (gérer, etc.). Existe-t-il un moyen d'enregistrer tous les événements (noms et fonctions) ajoutés à un élément?
Salut Errorhandler, je soupçonne que vous utilisiez une fonction personnalisée pour gérer IE Addiventent. Eh bien, je pense que vous pouvez régler cette fonction, ajoutant à un VaR / objet global avec les données d'événement - élément cible, événement cible et fonction de rappel, puis dans ce VaR / objet personnalisé, ajoutez certaines fonctions pour récupérer les données nécessaires.