Existe-t-il un moyen de trouver tous les événements d'un élément en javascript? ou un moyen de délier tous les événements d'un élément?Liste des événements d'un élément
Merci.
Existe-t-il un moyen de trouver tous les événements d'un élément en javascript? ou un moyen de délier tous les événements d'un élément?Liste des événements d'un élément
Merci.
Il n'y a pas moyen de le faire directement en utilisant javascript.
Jquery a quelques fonctions pour garder une trace de ces données. Un moyen "pur" de le faire est de changer la fonction addEventListener/attachEvent par le prototypage (recherche sur le prototype de javascript, pas sur le framework).
Ou si vous avez une fonction personnalisée pour ajouter/supprimer des événements, vous pouvez la régler.
Eh bien, c'est tout.
Bien sûr! Jetez un oeil à ce pour lier/événements sans liaison http://api.jquery.com/category/events/ et utiliser 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 « délégué eventName/fonction »
jQuery(elem).data('events');
Cela ne fonctionne que si vous utilisez déjà jQuery. –
est-il un moyen de le faire sans jQuery? – errorhandler
Eh bien, tout ce qu'il faut, c'est d'inclure l'API jQuery. Ce fragment de code devrait également fonctionner pour les événements qui ne sont pas directement liés par jQuery. – NinjaCross
Si vous ne voulez pas utiliser jQuery, une manière rapide et sale (et il y en aura sûrement une meilleure) serait de parcourir les paramètres de l'élément et de vérifier les fonctions qui commencent par 'on' (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.
}
}
}
merci, je vais l'essayer – errorhandler
ne fonctionne pas pour moi :( – errorhandler
J'utilise une fonction personnalisée pour ajouter des événements (gérer ie etc.) est-il un moyen de sauvegarder tous les événements (noms et fonctions) ajouté à un élément? – errorhandler
Salut errorhandler, je suppose que vous utilisiez une fonction personnalisée pour gérer IE addEvent Eh bien, je pense que vous pouvez régler cette fonction, en ajoutant un objet global var/object avec l'événement data - target, target, et la fonction de rappel, puis dans cet objet var/custom, ajoutez quelques fonctions pour récupérer les données nécessaires. – Dave