Heim > Web-Frontend > js-Tutorial > Gibt es eine Möglichkeit, anonyme Ereignis-Listener in JavaScript zu entfernen, ohne das Element zu ersetzen?

Gibt es eine Möglichkeit, anonyme Ereignis-Listener in JavaScript zu entfernen, ohne das Element zu ersetzen?

Barbara Streisand
Freigeben: 2024-10-18 16:47:03
Original
889 Leute haben es durchsucht

Is There a Way to Remove Anonymous Event Listeners in JavaScript Without Replacing the Element?

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);
Nach dem Login kopieren

...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");
Nach dem Login kopieren

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!

Quelle:php
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