Sobes.tech
Junior

Kā noņemt notikuma klausītāju?

sobes.tech AI

Atbilde no AI

Lai noņemtu notikuma klausītāju, tiek izmantota metode removeEventListener(). Šī metode pieņem tos pašus trīs argumentus kā addEventListener():

  1. Notikuma tips (virkne, piemēram, 'click', 'mouseover').
  2. Atsauce uz funkcijas apstrādātāju, kas tika piešķirts.
  3. Neobligāts objekts vai loģiska vērtība, kas norāda fāzi (ķeršanu vai izlaušanos). Tam jāatbilst tam, kas tika izmantots pie pievienošanas.

Svarīgi: lai veiksmīgi noņemtu, ir jānorāda tieši tā pati funkcijas atsauce, kas tika izmantota pie pievienošanas. Anonīmas funkcijas, kas tiek izveidotas "uz vietas", ar šādu metodi noņemt nav iespējams.

Piemērs:

// Saņem elementu
const element = document.getElementById('myButton');

// Definē funkcijas apstrādātāju
function handleClick() {
  console.log('Poga ir nospiesta!');
}

// Pievieno apstrādātāju
element.addEventListener('click', handleClick);

// ...kods...

// Noņem apstrādātāju
element.removeEventListener('click', handleClick);

Ja apstrādātājs tika pievienots ar opcijām, piemēram, useCapture: true, tad, to noņemot, arī jānorāda:

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

// ...

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

Ja pievienošanas laikā trešais arguments tika izlaists (izmantojot noklusējuma vērtību false), tad to arī var izlaist vai norādīt false:

element.addEventListener('click', handleClick); // useCapture: false pēc noklusējuma

// ...

element.removeEventListener('click', handleClick);
element.removeEventListener('click', handleClick, false); // ir ekvivalents iepriekšējam