单击此按钮时,菜单将显示在屏幕右侧。这个菜单有子菜单或我们可以称之为儿童的菜单,然后孩子们也有子菜单。问题是当我点击主菜单的子菜单时,子菜单就会消失。当您单击返回上一级菜单时,单击其他菜单,主菜单子项的子菜单已打开
这是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 用于可视化。可能是什么问题呢?
答案 0 :(得分:0)
对不起,如果我错了,我会尽力帮忙。
我认为这些罪魁祸首是下面代码的第二行。
$('.t-menus li > a').click(function(){
$('ul.toggle > li > ul').hide();
$(this).next().show();
return false;
});
单击主菜单或子菜单(在第一行)时,它将首先隐藏所有子菜单,然后命令显示下一个元素。它适用于主菜单,因为它们的子菜单位于不同的位置。
单击子菜单时会出现问题,因为子子菜单位于子菜单内,第二行代码将所有子菜单命令隐藏。因此,即使代码对要显示的子菜单的下一个元素(即子子菜单)进行排序,它仍然是隐藏的,因为它的父级(子菜单)是隐藏的。
希望这可以提供帮助。 干杯!