Heim > Web-Frontend > js-Tutorial > Hauptteil

Warum funktioniert mein JavaScript-RemoveEventListener() nicht?

Susan Sarandon
Freigeben: 2024-11-02 14:42:30
Original
591 Leute haben es durchsucht

Why is my JavaScript removeEventListener() not working?

Javascript RemoveEventListener funktioniert nicht

In diesem Code wird ein Ereignis-Listener zu einem Element mithilfe der Methode addEventListener() hinzugefügt:

area.addEventListener('click',function(event) ...,true);
Nach dem Login kopieren
Nach dem Login kopieren

Später wird in einer anderen Funktion versucht, den Ereignis-Listener mithilfe der Methode „removeEventListener()“ zu entfernen:

area.removeEventListener('click',function(event) ...,true);
Nach dem Login kopieren
Nach dem Login kopieren

Der Ereignis-Listener wird jedoch nicht entfernt. Warum passiert das?

Das Problem:
Das Problem liegt in der Tatsache, dass die beiden anonymen Funktionen, die als Argumente an die Methoden addEventListener() und removeEventListener() übergeben werden, zwei verschiedene Funktionen. Wenn der Ereignis-Listener mit dem folgenden Code hinzugefügt wird:

area.addEventListener('click',function(event) ...,true);
Nach dem Login kopieren
Nach dem Login kopieren
Die Laufzeit erstellt ein neues, eindeutiges anonymes Funktionsobjekt und weist es dem Click-Ereignishandler des Bereichselements zu.

Wann Der Event-Listener wird mit dem folgenden Code entfernt:

area.removeEventListener('click',function(event) ...,true);
Nach dem Login kopieren
Nach dem Login kopieren
Ein

anderes neues, eindeutiges anonymes Funktionsobjekt wird erstellt und dem Click-Event-Handler des Bereichselements zugewiesen. Die erste Funktion wird nicht entfernt, sodass sie weiterhin das Klickereignis verarbeitet.

Lösung:Um den Ereignis-Listener ordnungsgemäß zu entfernen, muss die Methode „removeEventListener()“ bereitgestellt werden mit einem Verweis auf dasselbe Funktionsobjekt, das an die Methode addEventListener() übergeben wurde. Dazu sollte der Ereignis-Listener als benannte Funktion definiert werden und dann sollte die benannte Funktion als Argument für die Methoden addEventListener() und removeEventListener() verwendet werden. Zum Beispiel:

Das obige ist der detaillierte Inhalt vonWarum funktioniert mein JavaScript-RemoveEventListener() nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!