@viktorulyushev

Открывать/закрывать меню при клике?

Есть несколько меню с одинаковой структурой,в которых только названия пунктов меню различаются

Нужно при клике закрывать/открывать их,но у меня получается так что для них всех срабатывает скрипт и все они открываются и закрываются одновременно,как сделать только для нижмаемого?

<div class="catalog_page_left_menu">
                            <div class="catalog_page_left_menu_name">Смесители</div>
                            <ul class="catalog_page_left_menu_ul">
                                <li class="catalog_page_left_menu_ul_item">
                                    <a href="">Нержавеющая сталь / Хром</a>
                                </li>
                                <li class="catalog_page_left_menu_ul_item">
                                    <a href="">Гранит</a>
                                </li>
                                <li class="catalog_page_left_menu_ul_item">
                                    <a href="">Курамика</a>
                                </li>
                                <li class="catalog_page_left_menu_ul_item">
                                    <a href="">Распродажа</a>
                                </li>
                                <li class="catalog_page_left_menu_ul_item catalog_page_left_menu_ul_item_select">
                                    <a href="">Комплекты</a>
                                </li>
                            </ul>
                        </div>


$('.catalog_page_left_menu_name').click(function(){
    $('.catalog_page_left_menu_ul').toggle().toggleClass('vis');
});
  • Вопрос задан
  • 663 просмотра
Решения вопроса 1
vladislav_boychenko
@vladislav_boychenko
Купаюсь в гривнах
$('.catalog_page_left_menu_name').click(function(){
    $(this).next().toggle().toggleClass('vis');
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimovich85
@dimovich85 Куратор тега JavaScript
https://u-academy.net/
Внутри функции обработки события нужно указать не селектор, а this, и от него отталкиваться. Можно вместо this использовать e.target, но тогда этот самый параметр е добавить к функции, как входной параметр. Например, Вот так:
$('.catalog_page_left_menu').on('click', function (e) {
$(e.target).find('.catalog_page_left_menu ul').toggle().toggleClass('vis');
}
Я так понял, что список находится внутри элемента, на который кликнули? Поэтому, взяв e. target и применив к нему jQ надо обратиться к его детям и найти список, который и отобразить.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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