Задать вопрос
@focusss

Почему не срабатывает classList.toggle при клике по label?

Не вижу причину, почему toggle не срабатывает при клике на элемент. Не присваивает классы и не убирает. Ошибок нет в консоли.

let switchLabel = document.querySelector(".theme-swither");
let bodySwitch = document.getElementsByTagName("body")[0];


switchLabel.addEventListener('click', function () {
    bodySwitch.classList.toggle("active");

})

UPD. Клик происходит по label с классом theme-swither, походу тут косяк, но почему?
  • Вопрос задан
  • 545 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
toggle не срабатывает при клике на элемент. Не присваивает классы и не убирает.

А может, всё-таки срабатывает? Дважды - сначала добавляет класс, а затем убирает.

Клик происходит по label

А внутри label'а, предположу, есть ещё какой-то элемент, input, например? Здесь возникает вопрос уже к вам: о чём вы не знаете - о всплытии событий, или что клик по label'у вызывает клик по связанному элементу?

Предположу ещё - раз переключаете класс, то input является чекбоксом. Обрабатывайте на нём событие change вместо клика по label'у.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
23 дек. 2024, в 09:41
5000 руб./за проект
23 дек. 2024, в 09:39
1000000 руб./за проект
23 дек. 2024, в 09:33
3000 руб./за проект