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

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

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

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

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

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

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