Maison >interface Web >js tutoriel >Comment supprimer tous les écouteurs d'événements d'un élément DOM ?
Question :
Est-il possible de supprimer tous les écouteurs d'événements attachés à un Élément DOM, tel qu'un div ?
Réponse :
Comprenant votre question, il existe plusieurs façons d'y parvenir en fonction de vos besoins.
Suppression de tous les gestionnaires d'événements
Pour supprimer tous les gestionnaires d'événements, quel que soit leur type, vous pouvez cloner l'élément et le remplacer par le clone.
var clone = element.cloneNode(true);
Remarque : Le clonage préserve les attributs et les enfants, mais pas les modifications des propriétés DOM.
Suppression de types d'événements spécifiques
Gestionnaires d'événements anonymes
Si vous avez ajouté des gestionnaires d'événements anonymes (fonctionnellement équivalents à passer une fonction comme rappel à addEventListener), vous rencontrerez un problème avec RemoveEventListener. En effet, les fonctions anonymes créent un nouvel objet à chaque fois qu'elles sont appelées, ce qui rend impossible leur suppression spécifique.
Solutions :
Gestionnaires d'événements non anonymes
Si vos gestionnaires d'événements ne sont pas anonymes, vous peut utiliser RemoveEventListener comme prévu. Cependant, vous devez vous assurer que vous transmettez à RemoveEventListener la même référence d'objet que celle que vous avez utilisée pour ajouter l'écouteur.
Exemple :
function eventHandler() {} div.addEventListener('click', eventHandler); ... div.removeEventListener('click', eventHandler);
Gardez à l'esprit que si votre code crée et supprime fréquemment des éléments, vous devrez peut-être gérer les références stockées dans la fonction wrapper de gestion des événements (_eventHandlers dans l'exemple fourni) pour éviter les fuites de mémoire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!