en.javascript.info/02-ui/02-events-and-interfaces/01-introduction-browser-events/03-which-handlers-run/solution.md
Ilya Kantor f301cb744d init
2014-10-26 22:10:13 +03:00

994 B
Raw Blame History

Ответ: будет выведено 1 и 2.

Первый обработчик сработает, так как он не убран вызовом removeEventListener. Для удаления обработчика нужно передать в точности ту же функцию (ссылку на нее), что была назначена, а в коде передается такая же с виду функция, но, тем не менее, это другой объект.

Для того, чтобы удалить функцию-обработчик, нужно где-то сохранить ссылку на неё, например так:

function handler() { 
  alert("1"); 
}

button.addEventListener("click", handler, false);
button.removeEventListener("click", handler, false);

Обработчик button.onclick сработает независимо и в дополнение к назначенному в addEventListener.