Junior
Как да премахнем слушател на събития?
sobes.tech AI
Отговор от AI
За да премахнете обработчик на събитие, използвайте метода removeEventListener(). Този метод приема същите трите аргумента като addEventListener():
- Тип на събитието (низ, например
'click','mouseover'). - Референция към зададената обработваща функция.
- Опционален обект или булева стойност, която указва фазата (засичане или разпиляване). Трябва да съвпада с използваното при добавяне.
Важно: за успешно премахване трябва да се предаде точно същата референция към функцията, която е използвана при добавяне. Анонимните функции, създадени "на летящо", не могат да бъдат премахнати по този начин.
Пример:
// Получаване на елемента
const element = document.getElementById('myButton');
// Определяне на обработваща функция
function handleClick() {
console.log('Бутонът е натиснат!');
}
// Добавяне на обработчик
element.addEventListener('click', handleClick);
// ...код...
// Премахване на обработчика
element.removeEventListener('click', handleClick);
Ако обработчикът е добавен с опции, например useCapture: true, те също трябва да бъдат посочени при премахването:
element.addEventListener('click', handleClick, { capture: true });
// ...
element.removeEventListener('click', handleClick, { capture: true });
Ако при добавяне третият аргумент е пропуснат (по подразбиране false), той също може да бъде пропуснат или зададен като false:
element.addEventListener('click', handleClick); // useCapture: false по подразбиране
// ...
element.removeEventListener('click', handleClick);
element.removeEventListener('click', handleClick, false); // еквивалентно