我有一个简单的嵌套列表,如下所示:
<ul class='main'>
<li class='mainlink'><a href='#'>Main 1</a>
<ul class='sub'>
<li><a href='#'>Sub 1-1</a>
<li><a href='#'>Sub 1-2</a>
<li><a href='#'>Sub 1-3</a>
</ul>
</li>
<li class='mainlink'><a href='#'>Main 2</a>
<ul class='sub'>
<li><a href='#'>Sub 2-1</a>
<li><a href='#'>Sub 2-2</a>
<li><a href='#'>Sub 3-3</a>
</ul>
</li>
<li class='mainlink'><a href='#'>Main 3</a>
<ul class='sub'>
<li><a href='#'>Sub 3-1</a>
<li><a href='#'>Sub 3-2</a>
<li><a href='#'>Sub 3-2</a>
</ul>
</li>
</ul>
以下是我的jQuery代码:
$( ".mainlink" ).click(function() {
var child = $(this).children('.sub');
var rest = $('.sub:visible').not(child);
child.slideToggle();
rest.slideUp();
});
点击
.mainlink
应该打开其子列表.sub
并关闭所有其他已经打开的子列表。这一部分功能已经按预期工作,但是当已经打开了.sub
时,再次点击.mainlink
会关闭.sub
并立即重新打开它,而不是保持关闭状态直到下一次点击发生。问题可能很容易解决,但我显然无法找到正确的方法。感谢您的帮助。
Ralf