gazes12
@gazes12

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

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


Работает как то через раз, то выводится console.log('dd'), то вообще не выводится.
Еще у меня медленный интернет, это же ни как не влияет?
  • Вопрос задан
  • 89 просмотров
Решения вопроса 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'))
Тогда будут отлавливаться клики и по дочерним элементам.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Rocket Брянск
от 60 000 до 100 000 ₽
22 мая 2024, в 07:09
50000 руб./за проект
22 мая 2024, в 02:15
10000 руб./за проект