@Roweb
Верстальщик

Как отловить клик внутри элемента при делегировании события?

Необходимо отловить клик на child(в том числе на его внутренних элементах, просто e.target.contains не подходит)
<div class="parent">
        <div class="child">
            <span>lorem</span>
            <span>lorem</span>
        </div>
    </div>


let parent = document.querySelector('.parent');
   parent.addEventListener('click', function(e) {

    });
  • Вопрос задан
  • 379 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
const parent = document.querySelector('.parent');
const child = parent.querySelector('.child');
parent.addEventListener('click', (e) => {
  if(e.target.closest('.child') !== child) { return; }
  // Мы 100% в child
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Steppp
let parent = document.querySelector('.parent');
const spans = document.querySelectorAll(`span`);

parent.addEventListener('click', function (e) {
  spans.forEach(el => {
    console.log(e.target.contains(el));
  });
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы