Sobes.tech
Junior

Ako odstrániť poslucháča udalostí?

sobes.tech AI

Odpoveď od AI

Na odstránenie poslucháča udalosti sa používa metóda removeEventListener(). Táto metóda prijíma rovnaké tri argumenty ako addEventListener():

  1. Typ udalosti (reťazec, napríklad 'click', 'mouseover').
  2. Odkaz na priradenú obslužnú funkciu.
  3. Voliteľný objekt alebo logická hodnota, ktorá označuje fázu (zachytávanie alebo bublanie). Musí zodpovedať tomu, čo bolo použité pri pridávaní.

Dôležité: pre úspešné odstránenie je potrebné odovzdať presne rovnaký odkaz na funkciu, ktorý bol použitý pri pridávaní. Anonymné funkcie vytvorené "za behu" nie je možné takto odstrániť.

Príklad:

// Získanie prvku
const element = document.getElementById('myButton');

// Definovanie obslužnej funkcie
function handleClick() {
  console.log('Tlačidlo stlačené!');
}

// Pridanie obsluhy
element.addEventListener('click', handleClick);

// ...kód...

// Odstránenie obsluhy
element.removeEventListener('click', handleClick);

Ak bola obsluha pridaná s možnosťami, napríklad useCapture: true, je potrebné ich tiež uviesť pri odstraňovaní:

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

// ...

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

Ak pri pridávaní bol tretí argument vynechaný (predvolená hodnota false), je možné ho tiež vynechať alebo nastaviť na false:

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

// ...

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