Maison >interface Web >js tutoriel >Comment désinscrire les écouteurs d'événements anonymes en JavaScript ?

Comment désinscrire les écouteurs d'événements anonymes en JavaScript ?

DDD
DDDoriginal
2024-10-18 16:45:30828parcourir

How to Unregister Anonymous Event Listeners in JavaScript?

Désinscription des écouteurs d'événements anonymes

Lors de l'attachement d'écouteurs d'événements en JavaScript à l'aide de la méthode addEventListener avec une fonction anonyme, il peut être nécessaire de les supprimer ces auditeurs plus tard. Cependant, il n'est pas immédiatement clair comment procéder sans recourir au remplacement de l'élément lui-même.

Approche :

Malheureusement, il n'existe aucun moyen simple de supprimer un événement anonyme. auditeur une fois qu'il est attaché. En effet, les fonctions anonymes ne possèdent pas de référence pouvant être utilisée pour la suppression.

Solution de contournement :

Une solution de contournement pratique consiste à stocker une référence au gestionnaire d'événements dans le temps de la création. Ceci peut être réalisé en attribuant la fonction anonyme à une variable ou une propriété de l'objet associé. Par exemple :

<code class="javascript">const myElement = document.querySelector('.my-element');

// Store a reference to the event handler
const myEventHandler = function () { /* do work here */ };

// Attach the event listener
myElement.addEventListener('click', myEventHandler, false);</code>

Suppression :

Une fois que le gestionnaire d'événements n'est plus nécessaire, vous pouvez le supprimer en utilisant la méthode removeEventListener et en transmettant la référence stockée :

<code class="javascript">myElement.removeEventListener('click', myEventHandler);</code>

En suivant cette approche, vous pouvez désinscrire efficacement les auditeurs d'événements anonymes sans avoir à remplacer l'élément ou à recourir à des solutions moins souhaitables.

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