Die Methoden addEventListener() und removeEventListener() werden verwendet, um Ereignisregistrierungen und -entfernungen in JavaScript zu verwalten. Wenn jedoch ein Ereignis-Listener mit bind() gebunden wird, sind zusätzliche Überlegungen für seine ordnungsgemäße Entfernung erforderlich.
Das Problem:
Wenn ein Ereignis-Listener mit hinzugefügt wird bind() wird eine neue Funktionsreferenz erstellt. Dies bedeutet, dass die ursprüngliche Funktion nicht direkt mit „removeEventListener()“ entfernt werden kann.
Erste Lösung:
Ein gängiger Ansatz besteht darin, jeden mit bind() hinzugefügten Listener im Auge zu behalten. und entfernen Sie es manuell. Dies erhöht jedoch den Mehraufwand und kann fehleranfällig sein.
Verbesserte Lösung:
Eine bessere Lösung besteht darin, die gebundene Funktionsreferenz einer Variablen zuzuweisen. Dies ermöglicht ein späteres einfaches Entfernen:
var boundListener = this.clickListener.bind(this); this.myButton.addEventListener("click", boundListener); ... this.myButton.removeEventListener("click", boundListener);
Fazit:
Indem Sie die gebundene Funktionsreferenz einer Variablen zuweisen, können Sie mit bind() hinzugefügte Ereignis-Listener entfernen. ohne dass eine manuelle Nachverfolgung erforderlich ist. Dieser Ansatz vereinfacht das Eventmanagement und reduziert das Fehlerrisiko.
Das obige ist der detaillierte Inhalt von## Wie entferne ich mit „bind()' gebundene Ereignis-Listener in JavaScript ordnungsgemäß?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!