Ми хочемо зробити цей проєкт з відкритим кодом доступним для людей у всьому світі.

Допоможіть перекласти цей підручник вашою мовою!

назад до уроку

Який обробник запуститься?

У змінній button знаходиться кнопка. Спочатку на ній немає обробників.

Який з обробників запуститься? Що буде виведено під час кліку після виконання коду?

button.addEventListener("click", () => alert("1")); button.removeEventListener("click", () => alert("1")); button.onclick = () => alert(2);

Відповідь: 1 і 2.

Перший обробник спрацює, тому що він не був вилучений методом removeEventListener. Щоб видалити обробник, необхідно передати саме ту функцію, яка була призначена як обробник. Попри те, що код ідентичний, в removeEventListener передається нова, інша функція.

Щоб видалити функцію-обробник, потрібно десь зберегти посилання на неї, наприклад:

function handler() { alert(1); } button.addEventListener("click", handler); button.removeEventListener("click", handler);

Обробник button.onclick спрацює все одно. Разом з addEventListener.