254 votes

Comment supprimer tous les écouteurs d'un élément?

J'ai un bouton et j'y ai ajouté quelques eventlistner s:

 document.getElementById("btn").addEventListener("click", funcA, false);
document.getElementById("btn").addEventListener("click", funcB, false);
document.getElementById("btn").addEventListener("click", funcC, false);
document.getElementById("btn").addEventListener("blur", funcD, false);
document.getElementById("btn").addEventListener("focus", funcE, false);

<button id="btn">button</button>
 

Je peux les enlever par:

 document.getElementById("btn").removeEventListener("click",funcA);
 

Et si je veux, je veux supprimer tous les écouteurs en même temps ou si je n'ai pas la référence de la fonction ( funcA )? Y a-t-il un moyen de le faire ou dois-je les supprimer un à un?

Merci.

256voto

Ben D Points 7458

Je pense que le moyen le plus rapide de faire est de simplement cloner le nœud, ce qui supprimera tous les écouteurs d'événements:

 var old_element = document.getElementById("btn");
var new_element = old_element.cloneNode(true);
old_element.parentNode.replaceChild(new_element, old_element);
 

Faites simplement attention, car cela effacera également les écouteurs d'événement sur tous les éléments enfants du nœud en question. Par conséquent, si vous souhaitez conserver cette information, vous devrez recourir à la suppression explicite des écouteurs, un à la fois.

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