| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/API/EventTarget/removeEventListener | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
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.
removeEventListener(type, listener)
removeEventListener(type, listener, options)
removeEventListener(type, listener, useCapture)
typeEin String, der den Typ des Ereignisses angibt, fr das ein Event-Listener entfernt werden soll.
listenerDie Event-Listener Funktion des Event-Handlers, der vom Event-Target entfernt werden soll.
options OptionalEin 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 OptionalEin 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.
Keiner.
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():
element.addEventListener("mousedown", handleMouseDown, true);
Betrachten Sie nun jeden dieser zwei Aufrufe von removeEventListener():
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:
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.
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.
Dieses Beispiel zeigt, wie man einen auf mouseover basierenden Event-Listener hinzufgt, der einen auf click basierenden Event-Listener entfernt.
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);
});
| Spezifikation |
|---|
| DOM # ref-for-dom-eventtarget-removeeventlistener |
EventTargetAbortControllerAbortSignalAbstractRangeAttrCDATASectionCharacterDataCommentCustomEventDOMErrorDOMExceptionDOMImplementationDOMParserDOMTokenListDocumentDocumentFragmentDocumentTypeElementEventHTMLCollectionMutationObserverMutationRecordNamedNodeMapNodeNodeIteratorNodeListProcessingInstructionQuotaExceededErrorRangeShadowRootStaticRangeTextTreeWalkerXMLDocumentXPathEvaluatorXPathExpressionXPathResultXSLTProcessorDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |