Что такое распространение события?
DOM и браузер
Распространение события (event propagation) — это процесс движения события по дереву DOM через три фазы: погружение, целевую фазу и всплытие.
Три фазы
- Погружение (capturing) — событие идёт от
documentвниз к целевому элементу. Обработчики срабатывают при{ capture: true }. - Цель (target) — событие на самом элементе-источнике.
- Всплытие (bubbling) — событие поднимается обратно к родителям до
document(по умолчанию).
document → parent → target → parent → document
погружение ↑ всплытиеparent.addEventListener('click', h, { capture: true }); // погружение
child.addEventListener('click', h); // цель
parent.addEventListener('click', h); // всплытиеУправление распространением
- stopPropagation() — прервать распространение.
- stopImmediatePropagation() — прервать и не дать другим обработчикам на элементе сработать.
Применение
- Всплытие → делегирование событий (один обработчик на родителе).
- Погружение → ранний перехват.
Коротко для собеседования
Распространение события — движение по DOM через три фазы: capturing (сверху вниз к цели), target (на элементе), bubbling (снизу вверх к родителям, по умолчанию). Всплытие — основа делегирования. Прерывает stopPropagation.