removeEventListener în JavaScript

Evenimente și observatori Toate browserele, Node.js 15+

Oprește ascultarea unui eveniment, scoțând o funcție adăugată anterior cu addEventListener.

Sintaxă
element.removeEventListener(eveniment, functie, optiuni)

Ce face removeEventListener

removeEventListener primește exact aceleași argumente ca la adăugare: același tip de eveniment, aceeași funcție (aceeași referință) și aceeași valoare pentru capture. O funcție scrisă din nou, chiar identică, este alt obiect și nu va fi scoasă.

Alternative mai comode: opțiunea { once: true } scoate automat ascultătorul după primul eveniment, iar { signal } cu un AbortController scoate mai mulți ascultători deodată, cu un singur abort().

Parametri

Parametru Descriere
eveniment Tipul evenimentului.
functie Aceeași funcție dată la addEventListener.
optiuni Opțional. Trebuie să aibă aceeași valoare capture.

Ce returnează

undefined.

Exemple

Exemplul 1: Scoaterea unui ascultător

Exemplul folosește un EventTarget simplu, care există și în Node.js; pe un element din pagină funcționează la fel.

const buton = new EventTarget();
const laClic = () => console.log("clic");

buton.addEventListener("click", laClic);
buton.dispatchEvent(new Event("click"));

buton.removeEventListener("click", () => console.log("clic"));
buton.dispatchEvent(new Event("click"));

buton.removeEventListener("click", laClic);
buton.dispatchEvent(new Event("click"));
console.log("gata");

Rezultat

clic
clic
gata

Exemplul 2: once și AbortController

const tinta = new EventTarget();
const controller = new AbortController();

tinta.addEventListener("salvat", () => console.log("o singură dată"), { once: true });
tinta.addEventListener("salvat", () => console.log("până la abort"), { signal: controller.signal });

tinta.dispatchEvent(new Event("salvat"));
controller.abort();
tinta.dispatchEvent(new Event("salvat"));
console.log("fără alte mesaje");

Rezultat

o singură dată
până la abort
fără alte mesaje

Greșeli frecvente

  • Scoți o funcție săgeată scrisă direct în apel sau un bind nou. Este altă funcție, iar ascultătorul rămâne; salvează funcția într-o variabilă.

Comenzi înrudite