> Что такое всплытие и погружение событий в JavaScript и что происходит раньше (JavaScript)

Уровень: junior · Роль: frontend · Категория: Технические вопросы

Компании: Kodix, Домклик, intelsy, Кэтрид Диджитал

Стек: JavaScript

> Пример ответа

Всплытие (bubbling) и погружение (capturing) - это две фазы распространения события в DOM. Когда происходит событие на элементе, оно сначала проходит от корневого узла (document) вниз до целевого элемента - это фаза погружения (capturing phase). Затем событие достигает целевого элемента - фаза цели (target phase). После этого событие поднимается обратно от целевого элемента вверх к корню - это фаза всплытия (bubbling phase).

Раньше происходит погружение. То есть сначала обработчики, установленные на фазе перехвата (с третьим аргументом true в addEventListener), срабатывают при движении сверху вниз. Затем срабатывает обработчик на самом целевом элементе. И только потом начинается всплытие - обработчики без флага true (или с false) срабатывают при движении снизу вверх.

Пример: если кликнуть по button внутри div, то порядок будет:

  1. Погружение: documentdiv (если есть обработчик с true).

  2. Цель: button.

  3. Всплытие: divdocument (обработчики по умолчанию).

Важно: не все события всплывают (например, focus не всплывает), но погружение поддерживается для всех событий.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью