【发布时间】:2019-03-03 21:24:38
【问题描述】:
我有一个简单的嵌套列表,如下所示:
<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 并在之后立即打开它,而不是在下一次单击发生之前保持关闭状态。
问题可能很容易解决,但我显然无法找到正确的方法。感谢您的帮助。
拉尔夫
【问题讨论】:
标签: javascript jquery