Dr_Elvis
@Dr_Elvis
В гугле забанен

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

Добавляю обработчик на элемент, потом на дочерний элемент, но при нажатии на дочерний срабатывают два.
Есть какой параметр на то чтобы не наследовался обработчик на дочерние элементы?
  • Вопрос задан
  • 69 просмотров
Решения вопроса 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);
})
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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