Sobes.tech
Junior

Kuidas eemaldada sündmuse kuulaja?

sobes.tech AI

Vastus AI-lt

Selleks, et eemaldada sündmuse kuulaja, kasutatakse meetodit removeEventListener(). See meetod võtab vastu samad kolm argumenti nagu addEventListener():

  1. Sündmuse tüüp (string, näiteks 'click', 'mouseover').
  2. Viide funktsiooni töötlejale, mis määrati.
  3. Valikuline objekt või loogiline väärtus, mis näitab faasi (haaramist või ülespuhumist). Selle peab vastama sellele, mis kasutati lisamisel.

Oluline: edukaks eemaldamiseks tuleb sisestada just sama funktsiooni viide, mis kasutati lisamisel. Anonüümseid funktsioone, mis luuakse "kohapeal", selle meetodiga eemaldada ei saa.

Näide:

// Saame elemendi
const element = document.getElementById('myButton');

// Määrame funktsiooni töötleja
function handleClick() {
  console.log('Nupp on vajutatud!');
}

// Lisame töötleja
element.addEventListener('click', handleClick);

// ...kood...

// Eemaldame töötleja
element.removeEventListener('click', handleClick);

Kui töötleja lisati valikutega, näiteks useCapture: true, siis nende eemaldamisel tuleb need samuti märkida:

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

// ...

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

Kui lisamisel oli kolmas argument vahele jäetud (kasutati vaikimisi väärtust false), siis seda võib samuti jätta või märkida false:

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

// ...

element.removeEventListener('click', handleClick);
element.removeEventListener('click', handleClick, false); // on ekvivalent eelnevale