Задать вопрос
@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, походу тут косяк, но почему?
  • Вопрос задан
  • 551 просмотр
Подписаться 1 Простой 3 комментария
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
toggle не срабатывает при клике на элемент. Не присваивает классы и не убирает.

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

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

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

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

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

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