Jquery下拉列表导航

时间:2014-01-16 18:48:43

标签: jquery html slide

我似乎无法让这个工作,但我不明白为什么。有人可以快速查看并告诉我我做错了什么吗?

目标:我想要我的" 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/

2 个答案:

答案 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();
    });
});