【发布时间】:2016-02-28 09:08:16
【问题描述】:
我创建了一个侧边栏,当我停留在Sidebar Menu 之类的父菜单时,激活类可以正常工作,如果我然后单击Sub Menu,尽管显示正确的文章,NAV 栏会关闭并失去我的导航位置。
在我的工作代码下面:
HTML:
<div id='sidebar'>
<ul>
<li><a href='#'>Sidebar Menu</a></li>
<li class='sub'><a href='#'>Sidebar</a>
<ul>
<li class='sub'><a href='#'>Sidebar 1</a>
<ul>
<li><a href='#'>Sub Sidebar</a></li>
<li><a href='#'>Sub Sidebar</a></li>
</ul>
</li>
<li class='sub'><a href='#'>Product 2</a>
<ul>
<li><a href='#'>Sub Product</a></li>
<li><a href='#'>Sub Product</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
jQuery
$("#sidebar > ul > li").each(function() {
var sideItem = $(this);
if (sideItem.find("a").attr("href") == location.pathname) {
sideItem.addClass("activation");
}
});
$('#sidebar li.active').addClass('open').children('ul').show();
$('#sidebar li.sub>a').on('click', function(){
$(this).removeAttr('href');
var element = $(this).parent('li');
if (element.hasClass('open')) {
element.removeClass('open');
element.find('li').removeClass('open');
element.find('ul').slideUp(200);
}
else {
element.addClass('open');
element.children('ul').slideDown(200);
element.siblings('li').children('ul').slideUp(200);
element.siblings('li').removeClass('open');
element.siblings('li').find('li').removeClass('open');
element.siblings('li').find('ul').slideUp(200);
}
});
问题 1:如果我不关闭子菜单,则让子菜单保持打开状态
如下图:
同时打开我这样实现的三个子菜单。
问题 2:当我激活这个 url 时激活子菜单
我怎样才能得到这个解决方案?
【问题讨论】:
-
我没有看到您提供的代码有任何问题,除了显示子菜单之外什么也没发生
标签: javascript jquery html css