我正在制作一个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">▼</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 & 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 & 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>
答案 0 :(得分:0)
只是猜测,因为我没有看到HTML ...你的问题出现在parents()
获取当前匹配元素集中每个元素的祖先,可选择通过选择器进行过滤。
我想你在这里需要父母()
获取当前匹配元素集中每个元素的父元素,可选择通过选择器进行过滤。
if($(this).parent().find(".open").length){ //try this
$(this).children('ul').slideDown();
}
注意:如果您向我们提供HTML也很容易