Проверяет понимание фазы всплытия события в DOM, важной для обработки событий в JavaScript.
Фаза всплытия — это вторая фаза распространения события в DOM после фазы погружения (capturing). Когда событие происходит на целевом элементе, оно начинает всплывать вверх по иерархии DOM: от целевого элемента к его родителю, затем к родителю родителя и так до самого корня (document). Это стандартное поведение для большинства событий (например, click, mousedown).
Представьте структуру: div > p > button. При клике на button событие сначала проходит фазу погружения (от document к button), затем достигает цели (target phase), и после этого начинается всплытие: button -> p -> div -> body -> html -> document. На каждом этапе можно перехватить событие с помощью обработчика, если он был назначен на соответствующем элементе.
document.querySelector('div').addEventListener('click', () => {
console.log('div clicked');
});
document.querySelector('p').addEventListener('click', () => {
console.log('p clicked');
});
document.querySelector('button').addEventListener('click', () => {
console.log('button clicked');
});
// При клике на button вывод будет:
// button clicked
// p clicked
// div clickedВсплытие используется для делегирования событий: вместо назначения обработчика каждому дочернему элементу, можно назначить один обработчик на родителя и ловить события от детей через event.target. Это улучшает производительность и упрощает код, особенно при динамическом добавлении элементов.
Понимание фазы всплытия необходимо для эффективной работы с событиями в JavaScript, особенно при реализации делегирования и отладки неожиданного срабатывания обработчиков.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию