Maison > interface Web > js tutoriel > le corps du texte

## Comment supprimer correctement les écouteurs d'événements liés avec `bind()` en JavaScript ?

Patricia Arquette
Libérer: 2024-10-26 03:03:03
original
561 Les gens l'ont consulté

## How to Properly Remove Event Listeners Bound with `bind()` in JavaScript?

Gestion des écouteurs d'événements enregistrés avec Bind en JavaScript

Les méthodes addEventListener() et removeEventListener() sont utilisées pour gérer les enregistrements et la suppression d'événements en JavaScript. Cependant, lorsqu'un écouteur d'événement est lié à l'aide de bind(), des considérations supplémentaires sont nécessaires pour sa suppression correcte.

Le problème :

Lorsqu'un écouteur d'événement est ajouté avec bind(), une nouvelle référence de fonction est créée. Cela signifie que la fonction d'origine ne peut pas être directement supprimée à l'aide de removeEventListener().

Solution initiale :

Une approche courante consiste à garder une trace de chaque écouteur ajouté avec bind() et supprimez-le manuellement. Cependant, cela ajoute une surcharge et peut être sujet aux erreurs.

Solution améliorée :

Une meilleure solution consiste à attribuer la référence de fonction liée à une variable. Cela permet une suppression facile plus tard :

var boundListener = this.clickListener.bind(this);
this.myButton.addEventListener("click", boundListener);
...
this.myButton.removeEventListener("click", boundListener);
Copier après la connexion

Conclusion :

En attribuant la référence de fonction liée à une variable, vous pouvez supprimer les écouteurs d'événement ajoutés avec bind() sans avoir besoin d’un suivi manuel. Cette approche simplifie la gestion des événements et réduit les risques d'erreurs.

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