我正在尝试深入研究jquery,如果已经有答案,请原谅。我搜索过,但找不到与我尝试做的事情相关的示例。
我有一个带有一些子菜单的垂直菜单。当点击顶级菜单时,它会展开子菜单。问题是,当单击子菜单项时,我希望子菜单保持打开状态。现在的情况是,当单击子菜单项时,菜单会折叠。
这是我的代码:
// Add class of drop if item has sub-menu
$('ul.sub-menu').closest('li').addClass('drop');
// Left Sidebar Main Navigation
var menu_ul = $('.menu > li.drop > ul'),
menu_a = $('.menu > li.drop > a');
menu_ul.hide();
menu_a.click(function(e) {
e.preventDefault();
if(!$(this).hasClass('active')) {
menu_a.removeClass('active');
menu_ul.filter(':visible').slideUp('normal');
$(this).addClass('active').next().stop(true,true).slideDown('normal');
} else {
$(this).removeClass('active');
$(this).next().stop(true,true).slideUp('normal');
}
});
我认为如果我试着将我的想法转化成清晰的程序员类型的句子,它会像这样。基本上,我需要查询DOM以查找具有子菜单的任何活动菜单,并且如果页面显示子菜单项之一,则显示子菜单下拉列表。