Sobes.tech
Back to questions
Middle+
2

Что такое всплытие и погружение событий в JavaScript?

Companies where asked
Ifellow

Answer from AI

sobes.tech AI

В JavaScript обработка событий в DOM происходит в три этапа: погружение (capturing), целевая фаза (target) и всплытие (bubbling).

Погружение (capturing) — событие сначала проходит от корневого элемента документа вниз по дереву DOM к целевому элементу. На этом этапе обработчики с параметром capture: true могут перехватывать событие.

Целевая фаза (target) — событие достигает элемента, на котором произошло действие.

Всплытие (bubbling) — после целевой фазы событие поднимается обратно вверх по дереву DOM к корню, вызывая обработчики с capture: false (по умолчанию).

Пример:

const parent = document.getElementById('parent');
const child = document.getElementById('child');

parent.addEventListener('click', () => console.log('parent capture'), true); // погружение
parent.addEventListener('click', () => console.log('parent bubble')); // всплытие
child.addEventListener('click', () => console.log('child target'));

// При клике на child порядок вызова:
// 1. parent capture (погружение)
// 2. child target
// 3. parent bubble (всплытие)

Таким образом, всплытие позволяет обрабатывать события на родительских элементах без необходимости навешивать обработчики на каждый дочерний элемент.