@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 удаляется (элемент исчезает).
В противном случае элемент появляется.

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

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

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

Похожие вопросы
23 нояб. 2024, в 23:03
1 руб./за проект
23 нояб. 2024, в 22:38
2500 руб./за проект
23 нояб. 2024, в 22:03
3000 руб./за проект