PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Зачем нужно погружение события?

DOM и браузер

Погружение события (capturing) нужно, чтобы перехватить событие на пути вниз к целевому элементу — до того, как сработают обработчики самого элемента и всплытие.

Что это

Фаза погружения — первая фаза распространения события: оно идёт от document вниз через предков к целевому элементу. Обработчики этой фазы срабатывают раньше целевых и всплывающих:

parent.addEventListener('click', handler, { capture: true }); // фаза погружения

Зачем нужно

Ранний перехват

Обработать событие на родителе до того, как оно дойдёт до потомка — например, чтобы предотвратить или подготовить обработку:

document.addEventListener('click', (e) => {
  // перехватить любой клик раньше всех остальных обработчиков
}, { capture: true });

Приоритетная обработка

Когда родитель должен решить, пропускать ли событие к потомкам (аналитика, глобальные шорткаты, блокировка).

Обратный делегированию сценарий

Всплытие — обработка снизу вверх (делегирование). Погружение — сверху вниз, когда логика родителя важнее.

На практике

Погружение используют редко — большинство задач решаются всплытием (делегированием). Capturing нужен для специфичных случаев раннего перехвата.

Порядок

Погружение (сверху вниз) → Цель → Всплытие (снизу вверх)

Коротко для собеседования

Погружение (capturing) нужно для перехвата события на пути вниз к цели — до целевых и всплывающих обработчиков ({ capture: true }). Применяют для раннего/приоритетного перехвата на родителе (глобальные шорткаты, блокировка, аналитика). Используется редко — большинство задач решает всплытие (делегирование).

Другие вопросы раздела