Heim >Web-Frontend >js-Tutorial >Warum funktioniert mein „removeEventListener' in JavaScript nicht?
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>
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>
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>
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!