@Rubical

Почему два разных ответа?

Добрый день. Проходил тесты на https://learn.javascript.ru/ и попались казалось бы 2 похожих вопроса, но ответы разные, может кто объяснить, почему?

1) Есть элемент div id=«elem»input//div На нём два обработчика:
elem.addEventListener("click", handler1, false);
elem.addEventListener("click", handler2, true);
Какой из них сработает раньше при клике на ?
• первый.
• второй. (правильный)
• ни один.
• стандарт не указывает точную последовательность.

Есть элемент input type=«button» id=«elem»/ На нём два обработчика:
elem.addEventListener("click", handler1, false);
elem.addEventListener("click", handler2, true);
Какой из них сработает раньше при клике на elem?
• первый. (правильный)
• второй.
• стандарт не указывает точную последовательность.
  • Вопрос задан
  • 184 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Посмотрите на том же learn.javascript про погружение и всплытие событий.

Вот песочница вашего вопроса:

Если в первом кликать не на вложенном поле input, а сбоку от него, именно на div'е, то порядок событий такой же как во втором. Как вешали обработчики, в том же порядке отрабатывают: 1, 2.

Если же кликнуть именно на поле ввода, которое вложено в div со слушателями, то 2-й сработает первым, ещё на фазе «погружения» события, т.к. у второго слушателя третьим аргументом true.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы