Sobes.tech
Junior

Kako ukloniti slušaoca događaja?

sobes.tech АИ

Одговор од АИ

Za uklanjanje slušaoca događaja koristi se metoda removeEventListener(). Ova metoda prihvata ista tri argumenta kao i addEventListener():

  1. Tip događaja (niz, na primer 'click', 'mouseover').
  2. Referenca na dodeljenu funkciju rukovaoca.
  3. Opcionalni objekat ili logička vrednost koja označava fazu (hvatanje ili bubnjenje). Mora odgovarati onome što je korišćeno prilikom dodavanja.

Važno: za uspešno uklanjanje potrebno je proslediti tačno istu referencu funkcije koja je korišćena prilikom dodavanja. Anonimne funkcije kreirane "u letu" ne mogu se na ovaj način ukloniti.

Primer:

// Dobavljanje elementa
const element = document.getElementById('myButton');

// Definisanje funkcije rukovaoca
function handleClick() {
  console.log('Dugme je pritisnuto!');
}

// Dodavanje rukovaoca
element.addEventListener('click', handleClick);

// ...kod...

// Uklanjanje rukovaoca
element.removeEventListener('click', handleClick);

Ako je rukovalac dodat sa opcijama, na primer useCapture: true, i pri uklanjanju ih je potrebno navesti:

element.addEventListener('click', handleClick, { capture: true });

// ...

element.removeEventListener('click', handleClick, { capture: true });

Ako je argument treći put nakon dodavanja izostavljen (podrazumevana vrednost false), i pri uklanjanju ga je moguće izostaviti ili postaviti na false:

element.addEventListener('click', handleClick); // useCapture: false podrazumevano

// ...

element.removeEventListener('click', handleClick);
element.removeEventListener('click', handleClick, false); // ekvivalentno