Link Search Menu Expand Document

Делегирование событий

Суть делигирования заключается в том что мы берем элемент который является родителем для всех элементов которым мы что-то делигируем и работаем непосредственно сним. Мы назначаем функцию для его потомков которые подходят под определенные параметры.

<div id="first" class="btn-block">
    <button class="blue some"></button>
    <button></button>
    <button></button>
    <button></button>
</div>
const wrapper = document.querySelector('.btn-block');

wrapper.addEventListener('click', (e) => {
    if (e.target && e.target.classList.contains('blue')){
        console.log('Hello!');
    }
});

Также соответствие можно определять таким способом:

wrapper.addEventListener('click', (e) => {
    if (e.target && e.target.matches("button.red")) {
        console.log('Hello!');
    }
});

Это более продвинутый способ