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():
- Notikuma tips (virkne, piemēram,
'click','mouseover'). - Atsauce uz funkcijas apstrādātāju, kas tika piešķirts.
- 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