Anonyme Ereignis-Listener entfernen
In JavaScript werden Ereignis-Listener häufig mithilfe anonymer Funktionen zu DOM-Elementen hinzugefügt. Das Entfernen dieser Ereignis-Listener ohne Ersetzen des Elements kann jedoch eine Herausforderung sein.
Frage
Gibt es eine Möglichkeit, einen Ereignis-Listener zu entfernen, der wie folgt hinzugefügt wurde:
element.addEventListener(event, function(){/* do work here */}, false);
...ohne das Element zu ersetzen?
Antwort
Leider ist es nicht möglich, einen anonymen Ereignis-Listener sauber zu entfernen, es sei denn, Sie haben eine Referenz gespeichert zum Zeitpunkt der Erstellung darauf zugreifen.
Lösung
Ein Ansatz besteht darin, den Ereignis-Listener einem bestimmten Objekt und nicht dem Element selbst hinzuzufügen. Beispielsweise könnten Sie ein „MyListener“-Objekt haben, das alle Ihre Ereignis-Listener verwaltet. Wenn Sie den Ereignis-Listener dann nicht mehr benötigen, können Sie ihn einfach aus dem „MyListener“-Objekt entfernen.
Hier ist ein Beispiel:
// Create a "MyListener" object var myListener = { events: [] }; // Add an event listener to the "MyListener" object myListener.add("click", function(){/* do work here */}, false); // Remove the event listener from the "MyListener" object myListener.remove("click");
Das obige ist der detaillierte Inhalt vonGibt es eine Möglichkeit, anonyme Ereignis-Listener in JavaScript zu entfernen, ohne das Element zu ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!