Heim > Web-Frontend > js-Tutorial > Wie kann ich Ereignis-Listener aus DOM-Objekten in JavaScript entfernen?

Wie kann ich Ereignis-Listener aus DOM-Objekten in JavaScript entfernen?

Barbara Streisand
Freigeben: 2024-10-25 05:46:02
Original
384 Leute haben es durchsucht

How Can I Remove Event Listeners from DOM Objects in JavaScript?

Ereignis-Listener aus DOM-Objekten entfernen

Alle Ereignis-Handler entfernen

Um alle Ereignis-Handler von einem Objekt zu entfernen, können Sie das Element klonen und ersetzen es mit dem Klon:

<code class="javascript">var clone = element.cloneNode(true);</code>
Nach dem Login kopieren

Diese Methode behält Attribute und untergeordnete Elemente bei, ändert jedoch nicht die DOM-Eigenschaften.

Ereignishandler mit anonymen Funktionen entfernen

Sie können Ereignisse entfernen Handler mit anonymen Funktionen, indem Sie einen Verweis auf die zurückgegebene Funktion speichern und eine separate Funktion zum Entfernen aller Ereignisse erstellen:

<code class="javascript">var _eventHandlers = {};

const addListener = (node, event, handler, capture = false) => {
  if (!(event in _eventHandlers)) {
    _eventHandlers[event] = []
  }
  _eventHandlers[event].push({ node: node, handler: handler, capture: capture })
  node.addEventListener(event, handler, capture)
}

const removeAllListeners = (targetNode, event) => {
  _eventHandlers[event]
    .filter(({ node }) => node === targetNode)
    .forEach(({ node, handler, capture }) => node.removeEventListener(event, handler, capture))

  _eventHandlers[event] = _eventHandlers[event].filter(
    ({ node }) => node !== targetNode,
  )
}</code>
Nach dem Login kopieren

Damit können Sie Ereignis-Listener hinzufügen und entfernen mit:

<code class="javascript">addListener(div, 'click', eventReturner(), false)
removeAllListeners(div, 'click')</code>
Nach dem Login kopieren

Direkte Ereignisverarbeitung

Wenn Sie eine anonyme Funktion zur Verarbeitung von Ereignissen verwenden, können Sie diese einfach direkt hinzufügen und entfernen:

<code class="javascript">function handler() {
  dosomething();
}

div.addEventListener('click',handler,false);</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Ereignis-Listener aus DOM-Objekten in JavaScript entfernen?. 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