Maison > interface Web > js tutoriel > Pourquoi mon JavaScript RemoveEventListener ne fonctionne-t-il pas ?

Pourquoi mon JavaScript RemoveEventListener ne fonctionne-t-il pas ?

Linda Hamilton
Libérer: 2024-11-02 17:04:03
original
880 Les gens l'ont consulté

Why Isn't My JavaScript removeEventListener Working?

Javascript RemoveEventListener ne fonctionne pas

Lorsque vous tentez d'ajouter et de supprimer des écouteurs d'événement à un élément en Javascript, la fonction RemoveEventListener peut ne pas fonctionner comme prévu . Ce problème survient lorsque la fonction anonyme fournie comme deuxième argument de removeEventListener n'est pas la même référence de fonction qui a été initialement attribuée à addEventListener.

Comprendre le problème

Dans le code fourni, les écouteurs d'événements sont attachés et supprimés à l'aide de fonctions anonymes :

area.addEventListener('click', function(event) { ... }, true);
area.removeEventListener('click', function(event) { ... }, true);
Copier après la connexion

Cependant, ces fonctions anonymes sont des objets complètement différents. Même s'ils peuvent effectuer les mêmes tâches, ils ne sont pas la même référence.

Solution

Pour supprimer correctement un écouteur d'événement, vous devez fournir la même référence de fonction que celle a été utilisé pour ajouter l'auditeur. Définissez une fonction nommée en dehors des appels addEventListener et RemoveEventListener :

function foo(event) {
  app.addSpot(event.clientX, event.clientY);
  app.addFlag = 1;
}
area.addEventListener('click', foo, true);
area.removeEventListener('click', foo, true);
Copier après la connexion

En faisant cela, la fonction RemoveEventListener reconnaît la référence de fonction qui a été initialement attachée et détache avec succès l'écouteur d'événement.

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!

source:php.cn
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