11521 sujets
JavaScript, DOM et API Web HTML5
Salut
Il n'y a aucun moyen en JS car getEventListeners a été mis à la poubelle par les navigateurs. Il faut utiliser les outils du développeur, touche F12.
Sur Chrome, dans le volet "Elements" vous cliquer sur l'élément du DOM à tester, puis à droite vous ouvrez le voler "EventListeners" qui donne la liste de tous les events visible par votre élément.
Si, par exemple, vous cherchez l'événement "click", il faut déplier (flèche) pour voir le nom de votre élément, par exemple "div#div1" (un tag DIV ayant l'ID div1)
Il n'y a aucun moyen en JS car getEventListeners a été mis à la poubelle par les navigateurs. Il faut utiliser les outils du développeur, touche F12.
Sur Chrome, dans le volet "Elements" vous cliquer sur l'élément du DOM à tester, puis à droite vous ouvrez le voler "EventListeners" qui donne la liste de tous les events visible par votre élément.
Si, par exemple, vous cherchez l'événement "click", il faut déplier (flèche) pour voir le nom de votre élément, par exemple "div#div1" (un tag DIV ayant l'ID div1)
Merci de la réponse.
Je suis effectivement un gros utilisateur de la touche F12, mais ce n'est pas la question que j'avais en tête.
Je ne cherche pas à debugger du code et à regarder à la main si l'évènement a bien été pris en compte à un certain moment, je cherche à faire ne sorte qu'un script puisse tester si un eventListener a été positionné sur un évènement sur une balise donnée, de façon à le positionner si ce n'est pas le cas, mais à ne pas le faire une nouvelle fois si c'est déjà fait.
Si on fait des addEventListener sans ce test, je crois comprendre que la fonction va être appelée plusieurs fois.
Une solution consisterait à faire
N'y a-t-il rien de plus propre ?
Je suis effectivement un gros utilisateur de la touche F12, mais ce n'est pas la question que j'avais en tête.
Je ne cherche pas à debugger du code et à regarder à la main si l'évènement a bien été pris en compte à un certain moment, je cherche à faire ne sorte qu'un script puisse tester si un eventListener a été positionné sur un évènement sur une balise donnée, de façon à le positionner si ce n'est pas le cas, mais à ne pas le faire une nouvelle fois si c'est déjà fait.
Si on fait des addEventListener sans ce test, je crois comprendre que la fonction va être appelée plusieurs fois.
Une solution consisterait à faire
element.removeEventListener('click', ma_fonction, false); //supprimer le listener au cas où
element.addEventListener('click', ma_fonction, false);
N'y a-t-il rien de plus propre ?
Hé hée bon point
https://developer.mozilla.org/fr/docs/Web/API/EventTarget/addEventListener#.C3.89couteurs_multiples_et_identiques
Donc oui, avec le même élément, le même évènement et la même instance de ma_fonction, c'est en effet ignoré.
Merci de me le faire découvrir
https://developer.mozilla.org/fr/docs/Web/API/EventTarget/addEventListener#.C3.89couteurs_multiples_et_identiques
a écrit :
Si plusieurs écouteurs (EventListeners) sont enregistrés sur la même cible (EventTarget) avec les mêmes paramètres, les instances en double sont ignorées. L'écouteur ne sera pas appelé plusieurs fois, et comme elles seront ignorées elles ne doivent pas être enlevées à l'aide de la méthode removeEventListener.
Donc oui, avec le même élément, le même évènement et la même instance de ma_fonction, c'est en effet ignoré.
Merci de me le faire découvrir