Загрузка...
Загрузка...
Продолжая работу с платформой, вы принимаете условия Политики конфиденциальности и использование файлов cookie.
Делегирование событий (event delegation) — это техника в JavaScript, при которой обработчик события навешивается на родительский элемент, а не на каждый дочерний элемент отдельно.
Эта техника работает благодаря механизму всплытия событий (event bubbling) — событие сначала происходит на целевом элементе, а затем поднимается вверх по дереву DOM.
Допустим, у вас есть список:
<ul id="menu">
<li>Главная</li>
<li>О нас</li>
<li>Контакты</li>
</ul>
Вместо того чтобы вешать click-обработчик на каждый <li>, можно повесить один обработчик на <ul>:
const menu = document.getElementById("menu");
menu.addEventListener("click", (event) => {
const target = event.target;
if (target.tagName === "LI") {
console.log("Вы кликнули по пункту:", target.textContent);
}
});
<li>.<li> к <ul>.<ul> ловит это событие.event.target, чтобы понять, на каком именно элементе произошёл клик.event.target, чтобы убедиться, что событие произошло на нужном элементе.blur, focus, scroll — для них нужно использовать capture).Совет:
Делегирование особенно полезно, если у вас много однотипных элементов, и вы хотите повесить обработчик один раз — эффективно и чисто.