Sobes.tech
Junior

Jak usunąć obsługę zdarzeń?

sobes.tech AI

Odpowiedź od AI

Aby usunąć obsługę zdarzenia, używa się metody removeEventListener(). Ta metoda przyjmuje te same trzy argumenty co addEventListener():

  1. Typ zdarzenia (łańcuch, np. 'click', 'mouseover').
  2. Odwołanie do funkcji obsługi, która została przypisana.
  3. Opcjonalny obiekt lub wartość logiczna wskazująca fazę (przechwytywanie lub bubbling). Musi być zgodne z tym użytym podczas dodawania.

Ważne: aby skutecznie usunąć, konieczne jest przekazanie dokładnie tego samego odwołania do funkcji, które było użyte podczas dodawania. Funkcje anonimowe tworzone "na bieżąco" nie mogą być usunięte w ten sposób.

Przykład:

// Pobierz element
const element = document.getElementById('myButton');

// Zdefiniuj funkcję obsługi
function handleClick() {
  console.log('Przycisk naciśnięty!');
}

// Dodaj obsługę
element.addEventListener('click', handleClick);

// ...kod...

// Usuń obsługę
element.removeEventListener('click', handleClick);

Jeśli obsługa została dodana z opcjami, np. useCapture: true, to również należy je podać podczas usuwania:

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

// ...

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

Jeśli podczas dodawania trzeci argument został pominięty (domyślnie false), to można go pominąć lub ustawić na false:

element.addEventListener('click', handleClick); // useCapture: false domyślnie

// ...

element.removeEventListener('click', handleClick);
element.removeEventListener('click', handleClick, false); // jest równoważne