【发布时间】:2013-08-07 23:31:38
【问题描述】:
我得到了以下结构:- 嵌套的 UL
<ul class="depth-one">
<li>Category 1
<ul class="depth-two">
<li > Category 1.1</li>
<li> Category 1.2</li>
<li> Category 1.3</li>
</ul>
</li>
<li> Category 2
<ul class="depth-two">
<li>Category 2.1</li>
<li>Category 2.2</li>
<li>Category 2.3</li>
</ul>
</li>
<li>Category 3
<ul class="depth-two">
<li>Category 3.1</li>
<li>Category 3.2</li>
<li>Category 3.3</li>
</ul>
</li>
</ul>
我已经用 CSS 应用了规则:
ul{
list-style: none;
padding:0;
margin:0;
}
.depth-one{
display:block;
}
.depth-two{
display:none;
}
仅显示主要类别。
$(document).ready(function() {
$(".depth-one > li").click(function() {
selector = $(this).find(' > .depth-two');
if($(selector).css("display") == "none"){
selector.slideDown(800);
} else {
selector.slideUp(800);
}
});
});
这个,在点击 MAIN 类别时切换 SUB 类别。
这里有一个小提琴来演示:http://jsfiddle.net/NB4bN/1/
现在,如您所见,当我单击 SUBCATEGORY 时,整个类别向上滑动,知道为什么吗?
我试图实现这一点,只有当我点击主类别时,子类别才会向上滑动,否则,当我点击子 <li> 项目时,什么也不会发生。
【问题讨论】:
-
因为点击仍在 li 内,即使它在该 li 内的某物内。
-
知道如何解决这个问题吗?
标签: javascript jquery dom jquery-selectors