Задать вопрос
Dr_Elvis
@Dr_Elvis
В гугле забанен

Как повесить обработчик событий только на элемент, без дочерних?

Добавляю обработчик на элемент, потом на дочерний элемент, но при нажатии на дочерний срабатывают два.
Есть какой параметр на то чтобы не наследовался обработчик на дочерние элементы?
  • Вопрос задан
  • 405 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
Решения вопроса 1
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
Отменить всплытие события в обработчике клика дочернего элемента с помощью event.stopPropagation()
document.querySelector('.close').addEventListener('click', function(e){
  e.stopPropagation()
  document.querySelector('.result').insertAdjacentHTML('beforeend', '<div>Close</div>');
});


Либо в обработчике делать проверку на то, на каком конкретно элементе произошёл клик.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
otdameskapizm
@otdameskapizm
Помог ответ? Отметь решением...
Можно попробовать просто при нажатии использовать target:
const inner = document.querySelector('.close');
inner.addEventListener('click', ({ target }) => {
  console.log(target);
})
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы