@ood1n
Пытаюсь развиться

Почему classList.contains не видит класс?

Есть вот такой код
document.documentElement.onclick = function(e) {
    var target = e.target;
    
    while ( target != this ) {

        if ( target.classList.contains('select') ) {
            var selectOptions = document.querySelector('.select__options');
            console.log(selectOptions.classList);
            console.log(selectOptions.classList.contains('show'));
            if ( !selectOptions.classList.contains('show') ) {
                selectOptions.classList.add('show')
                document.body.onclick = function() {
                    selectOptions.classList.remove('show')
                }
            } else {
                selectOptions.classList.remove('show');
            }
        }
        
        target = target.parentElement;
    }
}

Когда первый раз нажимаю по блоку с классом "select" блоку с классом "select__options" добавляется класс "show". Когда нажимаю повторно на блок с классом "select", selectOptions.classList.contains('show') возвращает false. В чем проблема?
Вот console.log
nCcSHPeqHUg.jpg
  • Вопрос задан
  • 772 просмотра
Пригласить эксперта
Ответы на вопрос 1
Zdomb
@Zdomb
web-программист
Магия, конечно, но у classList есть замечательный метод toggle, который может помочь https://developer.mozilla.org/ru/docs/Web/API/Elem...

Кроме того, рекомендую к своему вопросу прикладывать ссылку с кодом, например, на https://codepen.io/ или https://www.plnkr.co/
Ответ написан
Ваш ответ на вопрос

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

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