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

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

Есть верстка (все упрощаю для облегчения понимания)
<div class="cityWrapper" onclick="dropdown('city__dropdown', 'city__dropdown_active');"></div>
<div class="city__dropdown"></div>


Класс city__dropdown_active добавляет видимость элементу city__dropdown

Есть скрипт
function dropdown(targetElem, activity) {
            let elem = $('.'+targetElem);
            if (elem.hasClass(activity) == true) {
                elem.removeClass(activity);
            } else {
                elem.addClass(activity);
            }         
        }


Логика... по нажатию на элемент cityWrapper, вызывается функция dropdown. По ее выполнению должен появиться элемент city__dropdown.

Внутри функции идет проверка.
Если city__dropdown уже имеет класс city__dropdown_active (то ест он уже видимый), то класс city__dropdown_active удаляется (элемент исчезает).
В противном случае элемент появляется.

Но элемент только появляется и не исчезает. В чем может быть причина?
  • Вопрос задан
  • 67 просмотров
Подписаться 1 Простой 2 комментария
Решение пользователя Надим К ответам на вопрос (1)
zkrvndm
@zkrvndm
Архитектор решений
<div class="cityWrapper" onclick="$('.city__dropdown').toggle();"></div>

jQuery метод .toggle() позволяет отобразить или скрыть выбранные элементы. Если элемент изначально отображается, то он будет скрыт, если элемент скрыт, то он будет отображен.
Ответ написан
Комментировать