WordPress: jQuery код открывает все подменю - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть этот код в js файле

    $j(".mobile_menu > ul > li.has_sub > span.mobile_arrow, .mobile_menu > ul > li.has_sub > h3, .mobile_menu > ul > li.has_sub > a[href*='#']").on('tap click', function(e){
    e.preventDefault();

    if ($j(this).closest('li.has_sub').find("> ul.sub_menu").is(":visible")){
        $j(this).closest('li.has_sub').find("> ul.sub_menu").slideUp(200);
        $j(this).closest('li.has_sub').removeClass('open_sub');
    } else {
        $j(this).closest('li.has_sub').addClass('open_sub');
        $j(this).closest('li.has_sub').find("> ul.sub_menu").slideDown(200);
    }
});

$j(".mobile_menu > ul > li.has_sub > ul.sub_menu > li.has_sub > span.mobile_arrow, .mobile_menu > ul > li.has_sub > ul.sub_menu > li.has_sub > h3, .mobile_menu > ul > li.has_sub > ul.sub_menu > li.has_sub > a[href*='#']").on('tap click', function(e){
    e.preventDefault();

    if ($j(this).parent().find("ul.sub_menu").is(":visible")){
        $j(this).parent().find("ul.sub_menu").slideUp(200);
        $j(this).parent().removeClass('open_sub');
    } else {
        $j(this).parent().addClass('open_sub');
        $j(this).parent().find("ul.sub_menu").slideDown(200);
    }
});

Меню имеет 3 уровня

parent
--menu item
-----sub item
-------sub sub item
-------sub sub item
-----sub item
-------sub sub item
-------sub sub item
-----sub item
-------sub sub item
-------sub sub item

Когда я нажимаю sub item, все остальные подпункты открываются автоматически, потому что Тема не была настроена так, чтобы иметь несколько уровней пунктов меню, поэтому она находит меню closet и открывает его, что означает все дочерние меню здесь. Как я могу это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...