Sobes.tech
Junior

Как да премахнем слушател на събития?

sobes.tech AI

Отговор от AI

За да премахнете обработчик на събитие, използвайте метода removeEventListener(). Този метод приема същите трите аргумента като addEventListener():

  1. Тип на събитието (низ, например 'click', 'mouseover').
  2. Референция към зададената обработваща функция.
  3. Опционален обект или булева стойност, която указва фазата (засичане или разпиляване). Трябва да съвпада с използваното при добавяне.

Важно: за успешно премахване трябва да се предаде точно същата референция към функцията, която е използвана при добавяне. Анонимните функции, създадени "на летящо", не могат да бъдат премахнати по този начин.

Пример:

// Получаване на елемента
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); // еквивалентно