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!