Heim  >  Artikel  >  Web-Frontend  >  Wie entferne ich mit „bind()“ hinzugefügte Ereignis-Listener in JavaScript?

Wie entferne ich mit „bind()“ hinzugefügte Ereignis-Listener in JavaScript?

DDD
DDDOriginal
2024-10-25 13:07:30369Durchsuche

How to Remove Event Listeners Added with `bind()` in JavaScript?

Mit Bind hinzugefügte Ereignis-Listener entfernen

In JavaScript können Ereignis-Listener mithilfe der bind()-Methode hinzugefügt werden. Diese Methode erstellt eine neue Funktionsreferenz, sodass der Ereignis-Listener weiterhin auf den gewünschten Kontext zugreifen kann. Wenn es jedoch darum geht, solche Ereignis-Listener zu entfernen, besteht der Standardansatz darin, jeden mit bind() hinzugefügten Listener manuell zu verfolgen.

Bind-Listener-Referenzen verfolgen

Eine Methode von Das Entfernen von mit bind() hinzugefügten Ereignis-Listenern dient dazu, den Überblick über die Funktionsreferenzen zu behalten. Dies erfordert die Pflege einer Variablen zum Speichern der gebundenen Funktion und deren explizite Übergabe beim Entfernen des Listeners.

<code class="js">// Store the bound function reference
var clickListenerBind = this.clickListener.bind(this);

// Add the event listener with the bound reference
this.myButton.addEventListener("click", clickListenerBind);

// Remove the event listener using the stored reference
this.myButton.removeEventListener("click", clickListenerBind);</code>

Einfacher Ansatz

Eine einfachere und unkompliziertere Alternative zur manuellen Vorgehensweise Beim Verfolgen von Listener-Referenzen muss die gebundene Funktionsreferenz direkt einer Variablen zugewiesen werden. Dadurch kann der Listener auf die gleiche Weise wie jeder andere Ereignis-Listener entfernt werden.

<code class="js">const listener = this.clickListener.bind(this);

this.myButton.addEventListener("click", listener);

this.myButton.removeEventListener("click", listener);</code>

Dieser Ansatz macht zusätzliche Tracking-Variablen überflüssig und gewährleistet eine konsistente Entfernung von Ereignis-Listenern, unabhängig davon, wie sie ursprünglich hinzugefügt wurden.

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

Stellungnahme:
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