隐藏并显示sidemenu jquery

时间:2015-11-25 01:56:29

标签: javascript jquery html css

单击此按钮时,菜单将显示在屏幕右侧。这个菜单有子菜单或我们可以称之为儿童的菜单,然后孩子们也有子菜单。问题是当我点击主菜单的子菜单时,子菜单就会消失。当您单击返回上一级菜单时,单击其他菜单,主菜单子项的子菜单已打开

这是jquery

$('.btn-menu-toggle').on('click',function(){
    $(this).toggleClass('toggle-on');   
    if($(this).siblings('.t-menus').is(':visible')){
        $(this).siblings('.t-menus').hide();
    }else{
        $(this).siblings('.t-menus').show();
    } 
});

$('ul.toggle > li > ul').hide();
$('ul.toggle > li:first-child > ul').show();
$('.t-menus li > a').click(function(){
   $('ul.toggle > li > ul').hide();
   $(this).next().show();
    return false;
});

DEMO 用于可视化。可能是什么问题呢?

1 个答案:

答案 0 :(得分:0)

对不起,如果我错了,我会尽力帮忙。

我认为这些罪魁祸首是下面代码的第二行。

$('.t-menus li > a').click(function(){
    $('ul.toggle > li > ul').hide();
    $(this).next().show();
    return false;
});

单击主菜单或子菜单(在第一行)时,它将首先隐藏所有子菜单,然后命令显示下一个元素。它适用于主菜单,因为它们的子菜单位于不同的位置。

enter image description here

单击子菜单时会出现问题,因为子子菜单位于子菜单内,第二行代码将所有子菜单命令隐藏。因此,即使代码对要显示的子菜单的下一个元素(即子子菜单)进行排序,它仍然是隐藏的,因为它的父级(子菜单)是隐藏的。

enter image description here

希望这可以提供帮助。 干杯!