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

Warum funktioniert mein „removeEventListener' in JavaScript nicht?

Susan Sarandon
Freigeben: 2024-11-03 08:08:30
Original
446 Leute haben es durchsucht

Why Is My removeEventListener Not Working in JavaScript?

Javascript-RemoveEventListener funktioniert nicht

Im Bereich der Ereignisbehandlung spielt die Methode „removeEventListener“ eine entscheidende Rolle beim Trennen von Ereignis-Listenern von Elementen. Es kann jedoch frustrierend sein, auf Probleme zu stoßen, wenn „removeEventListener“ nicht wie erwartet funktioniert.

Bedenken Sie den folgenden Codeausschnitt:

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

Dieser Code fügt geschickt eine anonyme Funktion als Ereignis-Listener für den „Klick“ hinzu ' Ereignis für das Element 'area'. Wenn Sie jedoch versuchen, diesen Listener mit dem folgenden Code zu entfernen:

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

Es kann zu einer Straßensperre kommen. Das Problem liegt in der unterschiedlichen Natur der anonymen Funktionen, die in „addEventListener“ und „removeEventListener“ verwendet werden. Die als Argument für „removeEventListener“ bereitgestellte Funktion ist nicht identisch mit der zuvor registrierten Funktion. Um dieses Problem zu beheben, weisen Sie die Listener-Funktion einer benannten Variablen zu:

<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

Das obige ist der detaillierte Inhalt vonWarum funktioniert mein „removeEventListener' in JavaScript 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