Три фазы
- Capturing (погружение) — событие идёт от корня к цели.
- Target — событие на целевом элементе.
- Bubbling (всплытие) — от цели обратно к корню.
По умолчанию addEventListener(type, fn) слушает всплытие. Для capture:
parent.addEventListener("click", handler, true);
Зачем это знать
- Делегирование обычно на bubbling.
- Редкие кейсы (перехват до детей) — capture.
event.eventPhase показывает текущую фазу.
window → … → parent → target → parent → … → window
[ capture ........ ] [target] [ ...... bubble ]
Как отвечать
- Назвать три фазы по порядку.
- Сказать, что default — bubble.
- Показать
capture: true.
- Связать с делегированием и
stopPropagation.
Итог: событие не «мгновенно на кнопке» — оно проходит путь вниз и вверх по дереву; вы выбираете, на какой фазе слушать.