Heim > Web-Frontend > js-Tutorial > Warum funktioniert mein JavaScript „removeEventListener' nicht?

Warum funktioniert mein JavaScript „removeEventListener' nicht?

DDD
Freigeben: 2024-11-02 03:08:03
Original
333 Leute haben es durchsucht

Why Isn't My JavaScript `removeEventListener` Working?

Warum funktioniert der RemoveEventListener von Javascript nicht?

Beim Versuch, einen Ereignis-Listener zu entfernen, können Benutzer auf Schwierigkeiten stoßen, was zu der Frage führt, ob Es gibt ein Problem mit ihrer Umsetzung. Um dieses Problem auszuräumen, analysieren wir den bereitgestellten Code.

Im gegebenen Beispiel wird ein Ereignis-Listener an ein Element namens „area“ für das Klickereignis angehängt. Beim späteren Versuch, den Listener in einer anderen Funktion zu entfernen, schlägt die Entfernung jedoch fehl.

Der Grund für diesen Fehler liegt in der Tatsache, dass die beiden anonymen Funktionen, die an „addEventListener“ und „removeEventListener“ übergeben werden, unterschiedliche Funktionen sind. Obwohl beide das Click-Ereignis im Bereich verarbeiten, handelt es sich nicht um dasselbe Funktionsobjekt. Folglich funktioniert das Entfernen des Ereignis-Listeners mit derselben anonymen Funktionsreferenz aus addEventListener nicht.

Um dieses Problem zu beheben, ist es notwendig, für das Hinzufügen und Entfernen des Ereignis-Listeners dieselbe anonyme Funktionsreferenz zu verwenden. Dadurch wird sichergestellt, dass die Funktion removeEventListener den spezifischen Listener, der zuvor hinzugefügt wurde, korrekt ansprechen und entfernen kann.

Hier ist ein Beispiel für einen korrigierten Codeausschnitt:

<code class="javascript">function foo(event) {
     app.addSpot(event.clientX,event.clientY);
     app.addFlag = 1;
 }
 area.addEventListener('click',foo,true);
 area.removeEventListener('click',foo,true);</code>
Nach dem Login kopieren

Durch die Verwendung einer benannten Funktion wie „foo“ für den Ereignishandler kann auf dasselbe Funktionsobjekt sowohl zum Hinzufügen als auch zum Entfernen des Ereignis-Listeners verwiesen werden, wodurch sichergestellt wird, dass der Listener bei Bedarf korrekt entfernt wird.

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage