Задать вопрос
johnymkp
@johnymkp

Порождается ли событие в элементе или оно само по себе?

Например, мы щелкаем кнопку на странице и возникает событие "click".

Согласно модели обработки событий, click пройдет фазу погружения (capture), target-фазу и фазу всплытия (bubble). И событие по мере прохождения этих фаз будет возникать на всех объектах, начиная с window, document, html, body и т.д., пока не дойдет до "таргета" (кнопки в нашем случае).

Тогда насколько вообще корректно говорить, что именно кнопка "породила" это событие? Ведь оно по сути возникает на целой куче элементов, причем изначально вообще даже не на кнопке. Предполагаю, что щелчок - это реально просто щелчок по экрану и браузер не знает, в какой элемент я щелкнул. Для него это просто щелк в X, Y а не в кнопку. Соответственно, вероятно он и не узнает, что я щелкнул в кнопку, пока событие до нее не спустится.

Может быть корректнее тогда говорить, что событие возникло, так сказать, не где-то (на кнопке в данном случае), а "просто" возникло. А потом прошло все элементы, добравшись до самого глубокого, которое оно затронуло.
  • Вопрос задан
  • 104 просмотра
Подписаться 1 Средний 9 комментариев
Пригласить эксперта
Ответы на вопрос 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Любое событие порождается на корневом элементе. потом оно погружается до целевого элемента, а затем всплывает обратного до корневого.
Отловить событие на элементе (любом на пути) можно в любой фазе (погружение/всплытие).
Вообще об этом на первой странице учебника по джаваскрипт пишут.

Порождается ли событие в элементе

Нет

Порождается ли событие кликом по элементу или упрощенно самим элементом?

Да. Но возникает оно на корневом элементе.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы