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():
- Typ zdarzenia (łańcuch, np.
'click','mouseover'). - Odwołanie do funkcji obsługi, która została przypisana.
- 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