我使用一些基本的JavaScript来隐藏默认情况下的子导航,除非单击父项。问题是,如果单击子菜单中的链接,则下拉菜单会在浏览器刷新时关闭。我想知道如何才能使下拉列表保持打开状态,如果用户所在的页面在该下拉列表中。
这是我的HTML:
<ul id="navigation">
<li><a href="page1" />Page 1</a></li>
<li><a href="page2" />Page 2</a></li>
<li><span>Section 1</span>
<ul class="subnav">
<li><a href="s1page1" />Section 1 Page 1</a></span></li>
<li><a href="s1page2" />Section 1 Page 2</a></span></li>
</ul>
</li>
<li><span>Section 2</span>
<ul class="subnav">
<li><span><a href="s2page1" />Section 2 Page 1</a></span></li>
<li><span><a href="s2page2" />Section 2 Page 2</a></span></li>
</ul>
</li>
<li><a href="page3" />Page 3</a></li>
</ul>和我的JavaScript:
$(function(){
$('#navigation').find('span').click(function(e){
$(this).parent().find('ul').toggle();
});
});发布于 2014-02-12 05:13:40
您的HTML遇到了一些问题
<ul id="navigation">
<li><a href="page1">Page 1</a></li>
<li><a href="page2">Page 2</a></li>
<li><span>Section 1</span>
<ul class="subnav" style="display:none;">
<li><a href="s1page1">Section 1 Page 1</a></li>
<li><a href="s1page2">Section 1 Page 2</a></li>
</ul>
</li>
<li><span>Section 2</span>
<ul class="subnav" style="display:none;">
<li><a href="s2page1">Section 2 Page 1</a></li>
<li><a href="s2page2">Section 2 Page 2</a></li>
</ul>
</li>
<li><a href="page3">Page 3</a></li>
</ul>还可以使用stopPropagation来防止任何事件冒泡
$(function(){
$('#navigation').find('span').click(function(e){
e.stopPropagation();
$(this).parent().find('ul').toggle();
});
});https://stackoverflow.com/questions/21712827
复制相似问题