Maison >interface Web >js tutoriel >Comment supprimer les écouteurs d'événements anonymes sans remplacer les éléments ?

Comment supprimer les écouteurs d'événements anonymes sans remplacer les éléments ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-18 16:44:29927parcourir

How to Remove Anonymous Event Listeners Without Replacing Elements?

Suppression des écouteurs d'événements sans remplacement d'élément

En JavaScript, les écouteurs d'événements anonymes ajoutés à l'aide de la méthode addEventListener ne peuvent pas être directement supprimés sans connaissance de l'original référence de la fonction.

Attribution à une variable :

Une solution de contournement consiste à attribuer la fonction anonyme à une variable avant de l'ajouter à l'écouteur d'événement :

<code class="js">const myEventHandler = function() {
  // Your code here
};

element.addEventListener(event, myEventHandler, false);</code>

Vous pouvez ensuite supprimer l'écouteur d'événement en supprimant la référence à la variable :

<code class="js">element.removeEventListener(event, myEventHandler);</code>

Stockage dans un objet :

Une autre approche consiste à stocker gestionnaires d'événements anonymes dans un objet au sein de l'objet principal :

<code class="js">mainObject.eventHandlers = {
  [event]: function() {
    // Your code here
  }
};

element.addEventListener(event, mainObject.eventHandlers[event], false);</code>

Vous pouvez supprimer l'écouteur d'événement en parcourant l'objet et en supprimant la propriété appropriée :

<code class="js">for (const event in mainObject.eventHandlers) {
  element.removeEventListener(event, mainObject.eventHandlers[event]);
}</code>

Remarque : Il est important de se rappeler que la suppression des gestionnaires d'événements empêche uniquement leur déclenchement à l'avenir. Tous les événements déjà survenus exécuteront toujours leurs gestionnaires.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn