Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie entferne ich mit der .bind()-Methode hinzugefügte Ereignis-Listener?

Susan Sarandon
Freigeben: 2024-10-26 12:49:29
Original
419 Leute haben es durchsucht

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

Mit Bind() hinzugefügte Ereignis-Listener entfernen

Bei der Arbeit mit Ereignis-Listenern in JavaScript ist es wichtig, sie zu entfernen, wenn sie nicht mehr benötigt werden. insbesondere, wenn sie mit der Methode .bind() hinzugefügt wurden.

.bind() und Ereignis-Listener

Die Methode .bind() erstellt eine neue Funktion, die ist an einen bestimmten Kontext gebunden. Dadurch kann die Funktion außerhalb des Kontexts aufgerufen werden, in dem sie ursprünglich definiert wurde. Im bereitgestellten Beispiel:

this.myButton.addEventListener("click", this.clickListener.bind(this));
Nach dem Login kopieren

erstellt .bind(this) eine neue Funktion, die sicherstellt, dass sich das Schlüsselwort this in clickListener auf die MyClass-Instanz bezieht.

Entfernen des Listeners

Um die Schaltfläche in diesem Beispiel zu deaktivieren, müssen wir den Ereignis-Listener entfernen. Da .bind() jedoch eine neue Funktionsreferenz erstellt, können wir die ursprüngliche Funktion nicht einfach entfernen.

Lösung: Funktionsreferenz speichern

Die Lösung besteht darin, zu speichern die Funktionsreferenz, die von .bind() in einer Variablen zurückgegeben wird, bevor sie als Ereignis-Listener hinzugefügt wird:

const clickListenerBind = this.clickListener.bind(this);
this.myButton.addEventListener("click", clickListenerBind);
Nach dem Login kopieren

Jetzt können wir den Listener mithilfe der gespeicherten Referenz entfernen:

this.myButton.removeEventListener("click", clickListenerBind);
Nach dem Login kopieren

Andere Methoden

Obwohl die oben beschriebene Methode die korrekte Entfernung von mit .bind() hinzugefügten Listenern gewährleistet, gibt es keine bevorzugten Alternativen.

Das obige ist der detaillierte Inhalt vonWie entferne ich mit der .bind()-Methode hinzugefügte Ereignis-Listener?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!