Maison > interface Web > js tutoriel > Existe-t-il un moyen de supprimer les écouteurs d'événements anonymes en JavaScript sans remplacer l'élément ?

Existe-t-il un moyen de supprimer les écouteurs d'événements anonymes en JavaScript sans remplacer l'élément ?

Barbara Streisand
Libérer: 2024-10-18 16:47:03
original
942 Les gens l'ont consulté

Is There a Way to Remove Anonymous Event Listeners in JavaScript Without Replacing the Element?

Suppression des écouteurs d'événements anonymes

En JavaScript, les écouteurs d'événements sont souvent ajoutés aux éléments DOM à l'aide de fonctions anonymes. Cependant, supprimer ces écouteurs d'événement sans remplacer l'élément peut être difficile.

Question

Existe-t-il un moyen de supprimer un écouteur d'événement ajouté comme ceci :

element.addEventListener(event, function(){/* do work here */}, false);
Copier après la connexion

...sans remplacer l'élément ?

Réponse

Malheureusement, il n'est pas possible de supprimer proprement un écouteur d'événement anonyme à moins d'avoir stocké une référence au moment de la création.

Solution

Une approche consiste à ajouter l'écouteur d'événement à un objet spécifique, plutôt qu'à l'élément lui-même. Par exemple, vous pourriez avoir un objet « MyListener » qui gère tous vos écouteurs d'événements. Ensuite, lorsque vous n'avez plus besoin de l'écouteur d'événement, vous pouvez simplement le supprimer de l'objet "MyListener".

Voici un exemple :

// Create a "MyListener" object
var myListener = {
  events: []
};

// Add an event listener to the "MyListener" object
myListener.add("click", function(){/* do work here */}, false);

// Remove the event listener from the "MyListener" object
myListener.remove("click");
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal