gazes12
@gazes12

Почему скрипт работает некорректно?

/*СЛУШАТЕЛЬ КЛИКОВ*/
document.onclick = (e) =>{
    if(e.target.classList.contains('burger')){
        console.log('dd')
    }
}


Работает как то через раз, то выводится console.log('dd'), то вообще не выводится.
Еще у меня медленный интернет, это же ни как не влияет?
  • Вопрос задан
  • 91 просмотр
Решения вопроса 3
Anopeng
@Anopeng
Веб-программист, учу фронт и бек

Еще у меня медленный интернет, это же ни как не влияет?

Да хоть отключи его, будет вообще пофиг. Скрипт выполняется на стороне клиента, он не использует интернет.
Что касательно вопроса, то скорее всего, класс burger каждый раз либо добавляется, либо удаляется. По этому и работает через раз. Да и проще будет слушать непосредственно тот элемент с классом burger, а не весь документ
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
выводите в консоль без условий e.target — увидите, что за элемент поймал клик.

Интуиция подсказывает, что, например, интересуют клики по div'у, а ловит их вложенный элемент:
<div class="burger">
  <span>Какой-то текст</span>
</div>
тут часть кликов поймает не div, а span. Но, если добавить span'у CSS-свойство pointer-events: none;, он перестанет взаимодействовать с мышкой, и все клики отловятся именно div'ом, как и задумывалось.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Замените
if (e.target.classList.contains('burger'))
на
if (e.target.closest('.burger'))
Тогда будут отлавливаться клики и по дочерним элементам.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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