我有一个导航栏有两个下拉列表(作为嵌套ul的)。我试图切换subnavs时,其父母被点击。或者当另一个父母被点击时隐藏一个subnav。这里的标记:这是最好的方法吗?
<div id="nav-bar">
<a href="#">A link</a> |
<ul>
<li id="feedback">
<a href="javascript:void(0);">Feedback</a>
<ul class="subnav">
<li><a href="#">Give us feedback</a></li>
</ul>
</li>
</ul> |
<a href="#">Another link</a> |
<ul>
<li id="location">
<a href="javascript:void(0);">Pick your location</a>
<ul class="subnav">
<li><a href="#">Los Angeles</a></li>
<li><a href="#">New York</a></li>
</ul>
</li>
</ul>
</div>
,代码:
//hide the subnavs and give them a little down arrow
$('ul.subnav').hide().parent().append('<small>▼</small>');
// show its subnav when clicked
$('#nav-bar ul li').click(function() {
var subnav = $(this).children('ul.subnav');
// hide the other's subnav if it's visible
if ($(this).attr('id') == 'location') {
subnav.toggle();
$('li#feedback').children('ul.subnav').hide();
} else {
subnav.toggle();
$('li#location').children('ul.subnav').hide();
}
});
仍然是一个新手,JS和jQuery,我想知道是否有做到我想要一个更简洁的方式做以上。
编辑:一个更好的问题是,有没有办法做到这一点,而不必明确地给李的ID?
你应该说你正在努力达到的目的..而不是让人们试图从你的代码中找出它。我们怎么知道你想要做的是你的代码是什么? – Layke 2010-02-22 20:19:19
我试图切换subnavs,当其父母被点击。或者当另一个父母被点击时隐藏一个subnav。 – farkenfooken 2010-02-22 20:20:31
Heed Laykes。你需要提供你想要做的事情的解释,特别是你不喜欢你目前如何做的事情。 – 2010-02-22 20:20:58