[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/API/EventTarget/removeEventListener [Back]  [Original]

EventTarget: Methode removeEventListener() - Web-APIs | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

EventTarget: Methode removeEventListener()

Baseline Weitgehend verfgbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.

Hinweis: Diese Funktion ist in Web Workers verfgbar.

Die removeEventListener() Methode der EventTarget Schnittstelle entfernt einen zuvor mit EventTarget.addEventListener() registrierten Ereignis-Listener vom Ziel. Der zu entfernende Event-Listener wird durch eine Kombination aus Event-Typ, der Event-Listener-Funktion selbst und verschiedenen optionalen Optionen, die den Abgleichprozess beeinflussen knnen, identifiziert; siehe Abgleich von Event-Listenern zur Entfernung.

Ein Aufruf von removeEventListener() mit Argumenten, die keinen aktuell registrierten Event-Listener auf dem EventTarget identifizieren, hat keine Auswirkung.

Wenn ein Event-Listener von einem EventTarget entfernt wird, whrend ein anderer Listener des Ziels ein Ereignis verarbeitet, wird er nicht durch das Ereignis ausgelst. Allerdings kann er wieder angefgt werden.

Warnung: Wenn ein Listener zweimal registriert wird, einmal mit gesetztem capture Flag und einmal ohne, mssen Sie jeden separat entfernen. Die Entfernung eines Capture-Listeners hat keine Auswirkungen auf eine Nicht-Capture-Version desselben Listeners und umgekehrt.

Event-Listener knnen auch entfernt werden, indem ein AbortSignal an addEventListener() bergeben wird und anschlieend abort() auf dem Controller, der das Signal besitzt, aufgerufen wird.

In diesem Artikel

Syntax

js
removeEventListener(type, listener)
removeEventListener(type, listener, options)
removeEventListener(type, listener, useCapture)

Parameter

type

Ein String, der den Typ des Ereignisses angibt, fr das ein Event-Listener entfernt werden soll.

listener

Die Event-Listener Funktion des Event-Handlers, der vom Event-Target entfernt werden soll.

options Optional

Ein Optionsobjekt, das Eigenschaften ber den Event-Listener angibt.

Die verfgbaren Optionen sind:

  • capture: Ein boolescher Wert, der angibt, ob der Event-Listener, der entfernt werden soll, als Capturing-Listener registriert ist oder nicht. Wird dieser Parameter nicht bergeben, wird der Standardwert false angenommen.
useCapture Optional

Ein boolescher Wert, der angibt, ob der Event-Listener, der entfernt werden soll, als Capturing-Listener registriert ist oder nicht. Wird dieser Parameter nicht bergeben, wird der Standardwert false angenommen.

Rckgabewert

Keiner.

Abgleich von Event-Listenern zur Entfernung

Wenn ein Event-Listener zuvor durch den Aufruf von addEventListener() hinzugefgt wurde, kann es irgendwann notwendig werden, ihn zu entfernen. Offensichtlich mssen Sie die gleichen type und listener Parameter an removeEventListener() bergeben. Aber was ist mit den Parametern options oder useCapture?

Whrend addEventListener() es erlaubt, denselben Listener mehr als einmal fr denselben Typ hinzuzufgen, wenn die Optionen unterschiedlich sind, berprft removeEventListener() nur die capture/useCapture-Flag. Sein Wert muss bereinstimmen, damit removeEventListener() bereinstimmt, aber die anderen Werte nicht.

Zum Beispiel, betrachten Sie diesen Aufruf von addEventListener():

js
element.addEventListener("mousedown", handleMouseDown, true);

Betrachten Sie nun jeden dieser zwei Aufrufe von removeEventListener():

js
element.removeEventListener("mousedown", handleMouseDown, false); // Fails
element.removeEventListener("mousedown", handleMouseDown, true); // Succeeds

Der erste Aufruf schlgt fehl, da der Wert von useCapture nicht bereinstimmt. Der zweite ist erfolgreich, da useCapture bereinstimmt.

Betrachten Sie nun dies:

js
element.addEventListener("mousedown", handleMouseDown, { passive: true });

Hier geben wir ein options Objekt an, in dem passive auf true gesetzt ist, whrend die anderen Optionen auf den Standardwert false gesetzt sind.

Sehen Sie sich nun jeden dieser Aufrufe von removeEventListener() der Reihe nach an. Jeder Aufruf, bei dem capture oder useCapture true ist, schlgt fehl; alle anderen sind erfolgreich.

Nur die capture-Einstellung ist fr removeEventListener() von Bedeutung.

js
element.removeEventListener("mousedown", handleMouseDown, { passive: true }); // Succeeds
element.removeEventListener("mousedown", handleMouseDown, { capture: false }); // Succeeds
element.removeEventListener("mousedown", handleMouseDown, { capture: true }); // Fails
element.removeEventListener("mousedown", handleMouseDown, { passive: false }); // Succeeds
element.removeEventListener("mousedown", handleMouseDown, false); // Succeeds
element.removeEventListener("mousedown", handleMouseDown, true); // Fails

Es sei darauf hingewiesen, dass einige Browserversionen hier inkonsistent gewesen sind, und es sei geraten, die gleichen Werte wie beim Aufruf von addEventListener() zu verwenden, wenn Sie removeEventListener() aufrufen, es sei denn, Sie haben spezifische Grnde, es anders zu machen.

Beispiel

Dieses Beispiel zeigt, wie man einen auf mouseover basierenden Event-Listener hinzufgt, der einen auf click basierenden Event-Listener entfernt.

js
const body = document.querySelector("body");
const clickTarget = document.getElementById("click-target");
const mouseOverTarget = document.getElementById("mouse-over-target");

let toggle = false;
function makeBackgroundYellow() {
  body.style.backgroundColor = toggle ? "white" : "yellow";

  toggle = !toggle;
}

clickTarget.addEventListener("click", makeBackgroundYellow);

mouseOverTarget.addEventListener("mouseover", () => {
  clickTarget.removeEventListener("click", makeBackgroundYellow);
});

Spezifikationen

Spezifikation
DOM
# ref-for-dom-eventtarget-removeeventlistener

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page