Heim  >  Artikel  >  Web-Frontend  >  Wie entferne ich anonyme Ereignis-Listener, ohne Elemente zu ersetzen?

Wie entferne ich anonyme Ereignis-Listener, ohne Elemente zu ersetzen?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-18 16:44:29844Durchsuche

How to Remove Anonymous Event Listeners Without Replacing Elements?

Ereignis-Listener ohne Elementersetzung entfernen

In JavaScript können anonyme Ereignis-Listener, die mit der Methode addEventListener hinzugefügt wurden, ohne Kenntnis des Originals nicht direkt entfernt werden Funktionsreferenz.

Zuweisen zu einer Variablen:

Eine Problemumgehung besteht darin, die anonyme Funktion einer Variablen zuzuweisen, bevor sie zum Ereignis-Listener hinzugefügt wird:

<code class="js">const myEventHandler = function() {
  // Your code here
};

element.addEventListener(event, myEventHandler, false);</code>

Sie können dann den Ereignis-Listener entfernen, indem Sie den Verweis auf die Variable entfernen:

<code class="js">element.removeEventListener(event, myEventHandler);</code>

Speichern in einem Objekt:

Ein anderer Ansatz ist das Speichern Anonyme Ereignishandler in einem Objekt innerhalb des Hauptobjekts:

<code class="js">mainObject.eventHandlers = {
  [event]: function() {
    // Your code here
  }
};

element.addEventListener(event, mainObject.eventHandlers[event], false);</code>

Sie können den Ereignis-Listener entfernen, indem Sie das Objekt durchlaufen und die entsprechende Eigenschaft entfernen:

<code class="js">for (const event in mainObject.eventHandlers) {
  element.removeEventListener(event, mainObject.eventHandlers[event]);
}</code>

Hinweis : Es ist wichtig zu bedenken, dass das Entfernen von Event-Handlern nur verhindert, dass diese in Zukunft ausgelöst werden. Alle bereits aufgetretenen Ereignisse führen weiterhin ihre Handler aus.

Das obige ist der detaillierte Inhalt vonWie entferne ich anonyme Ereignis-Listener, ohne Elemente zu ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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