我似乎无法让这个工作,但我不明白为什么。有人可以快速查看并告诉我我做错了什么吗?
目标:我想要我的" sidebar-inner-list"单击"侧栏导航>时向下滑动李"我希望能够在关闭一个关闭的列表时关闭所有打开的列表。当我再次点击它时,我还需要能够关闭我点击的那个。
HTML
<ul class="sidebar-navigation">
<li>
Overskrift
<ul class="sidebar-inner-list">
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#">Link</a>
</li>
</ul>
</li>
<li>
Overskrift 2
<ul class="sidebar-inner-list">
<li>
<a href="#">Link 2</a>
</li>
<li>
<a href="#">Link 2</a>
</li>
<li>
<a href="#">Link 2</a>
</li>
</ul>
</li>
</ul>
JQUERY
var allPanels = $('.sidebar-inner-list > li').hide();
$('.sidebar-navigation > li').click(function () {
allPanels.slideUp();
$(this).children('.sidebar-inner-list').slideDown();
return false;
});
希望有人能发现错误。
我也做了一个小提琴:http://jsfiddle.net/iBertel/nrFhu/6/
答案 0 :(得分:1)
您需要向下隐藏您隐藏的相同元素。
http://jsfiddle.net/isherwood/nrFhu/7/
$(this).find('.sidebar-inner-list').slideDown();
应该是
$(this).find('.sidebar-inner-list li').slideDown();
要解决上下问题,您可能需要再添加一个逻辑层:
http://jsfiddle.net/isherwood/nrFhu/8/
$('.sidebar-navigation > li').each(function () {
$(this).click(function () {
$('.sidebar-navigation > li').not(this).find('li').slideUp();
$(this).find('.sidebar-inner-list li').slideDown();
return false;
});
});
答案 1 :(得分:0)
试试这个
$(document).ready(function(){
$('.sidebar-inner-list').children("li").slideUp(0);
$('.sidebar-navigation li').click(function () {
$('.sidebar-inner-list').children("li").slideUp();
$(this).children(".sidebar-inner-list").children("li").slideDown();
});
});