Maison > interface Web > js tutoriel > Comment supprimer les écouteurs d'événements ajoutés avec la méthode .bind() ?

Comment supprimer les écouteurs d'événements ajoutés avec la méthode .bind() ?

Susan Sarandon
Libérer: 2024-10-26 12:49:29
original
523 Les gens l'ont consulté

How to Remove Event Listeners Added with the .bind() Method?

Suppression des écouteurs d'événements ajoutés avec Bind()

Lorsque vous travaillez avec des écouteurs d'événements en JavaScript, il est crucial de les supprimer lorsqu'ils ne sont plus nécessaires, surtout lorsqu'ils ont été ajoutés à l'aide de la méthode .bind().

.bind() et Event Listeners

La méthode .bind() crée une nouvelle fonction qui est lié à un contexte spécifique. Cela permet à la fonction d'être appelée en dehors du contexte dans lequel elle a été initialement définie. Dans l'exemple fourni :

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

le .bind(this) crée une nouvelle fonction qui garantit que le mot clé this dans clickListener fait référence à l'instance MyClass.

Suppression de l'écouteur

Pour désactiver le bouton dans cet exemple, nous devons supprimer l'écouteur d'événement. Cependant, puisque .bind() crée une nouvelle référence de fonction, nous ne pouvons pas simplement supprimer la fonction d'origine.

Solution : stocker la référence de fonction

La solution est de stocker la référence de fonction renvoyée par .bind() dans une variable avant de l'ajouter en tant qu'écouteur d'événement :

const clickListenerBind = this.clickListener.bind(this);
this.myButton.addEventListener("click", clickListenerBind);
Copier après la connexion

Maintenant, nous pouvons supprimer l'écouteur en utilisant la référence stockée :

this.myButton.removeEventListener("click", clickListenerBind);
Copier après la connexion

Autres méthodes

Bien que la méthode décrite ci-dessus garantisse la suppression correcte des écouteurs ajoutés avec .bind(), il n'y a pas d'alternative préférée.

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