jQuery手风琴多次滑动

时间:2013-02-05 08:41:40

标签: javascript jquery accordion slidedown

我正在制作一个jquery手风琴,我有一些问题

我的jQuery在一个类中搜索一个ul,如果它有某个类,它会向下滑动,但它会向下滑动整个nav中元素ul的次数

到目前为止,这是我的jquery代码:

if($(this).has("ul").length){   
$(".menu ul li").on('click',function(e){
    $(this).addClass('open').siblings().removeClass('open').children();
    $('.menu ul li ul').slideUp();
    if($(this).parents().find(".open").length){
        $(this).children('ul').slideDown();
    }
    //$(this).parents().find(".open").children('ul').slideDown();
    e.preventDefault();
    }); 
};

这是我的HTML:

  <div class="menu">
    <a id="jump" href="#"><p>Menu</p><span class="right">&#9660;</span></a>
    <nav class="row">
        <div class="page_wrapper">
        <ul class="niveau_1">
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#">Group</a>
                <ul class="sub-menu">
                    <li><a href="#">QHSE/Awards</a></li>
                    <li><a href="#">Vacatures/</a></li>
                </ul>
            </li>
            <li><a href="#">Nieuws &amp; Media</a>
                <ul class="sub-menu">
                    <li><a href="#">Van Moer in de media</a></li>
                    <li><a href="#">Nieuwsarchief</a></li>
                </ul>
            </li>
            <li><a href="#">Sport &amp; Events</a>
                <ul class="sub-menu">
                    <li><a href="#">Casual Friday</a>
                        <ul>
                            <li><a href="#">Inschrijving</a></li>
                            <li><a href="#">Foto's</a></li>
                        </ul>
                    </li>
                    <li><a href="#">Thursday Lounge</a></li>
                    <li><a href="#">Triatlon</a></li>
                    <li><a href="#">Sponsoring</a></li>
                    <li><a href="#">Beurzen</a></li>
                    <li><a href="#">Kalender</a></li>
                </ul>
            </li>
            <li><a href="#">Vestigingen</a></li>
            <li><a href="#">Contact</a></li>
        </ul>
        </div>

1 个答案:

答案 0 :(得分:0)

只是猜测,因为我没有看到HTML ...你的问题出现在parents()

  

获取当前匹配元素集中每个元素的祖先,可选择通过选择器进行过滤。

我想你在这里需要父母()

  

获取当前匹配元素集中每个元素的父元素,可选择通过选择器进行过滤。

if($(this).parent().find(".open").length){  //try this
    $(this).children('ul').slideDown();
}

注意:如果您向我们提供HTML也很容易