> Что такое всплытие и погружение событий в JavaScript и что происходит раньше (JavaScript)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: Kodix, Домклик, intelsy, Кэтрид Диджитал
Стек: JavaScript
> Пример ответа
Всплытие (bubbling) и погружение (capturing) - это две фазы распространения события в DOM. Когда происходит событие на элементе, оно сначала проходит от корневого узла (document) вниз до целевого элемента - это фаза погружения (capturing phase). Затем событие достигает целевого элемента - фаза цели (target phase). После этого событие поднимается обратно от целевого элемента вверх к корню - это фаза всплытия (bubbling phase).
Раньше происходит погружение. То есть сначала обработчики, установленные на фазе перехвата (с третьим аргументом true в addEventListener), срабатывают при движении сверху вниз. Затем срабатывает обработчик на самом целевом элементе. И только потом начинается всплытие - обработчики без флага true (или с false) срабатывают при движении снизу вверх.
Пример: если кликнуть по button внутри div, то порядок будет:
-
Погружение:
document→div(если есть обработчик сtrue). -
Цель:
button. -
Всплытие:
div→document(обработчики по умолчанию).
Важно: не все события всплывают (например, focus не всплывает), но погружение поддерживается для всех событий.
> Похожие задачи по frontend
Как получить все ключи объекта в JavaScript
Как работает цепочка Promise.then.catch.then.catch.then в JavaScript и когда выполняется последний then
Что такое debounce и как он работает в JavaScript?
Как влияют неявные преобразования типов в JavaScript на разработку
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью