-1

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

我的jQuery在一个类中搜索一个ul,如果它有一个特定的类,它会向下滑动,但它向下滑动的次数与整个导航中存在的元素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>
4

1 回答 1

0

只是猜测,因为我也没有 HTML 看起来......你的问题就在这里parents()

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

我想你需要 parent() 这里

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

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

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

于 2013-02-05T08:50:43.893 回答