2013-06-23 24 views
1

我正在为某人制作响应主题。我做了菜单,但我使用jQuery .slide()使菜单滑动打开。问题是,当我切换到滑动打开菜单时,它也会滑动打开其中的所有子菜单。jQuery多个.slide()在没有选择器的导航中

我可以添加选择器来解决这个问题。但是,通过添加选择器,这意味着用户可能必须更改jQuery,如果他/她应该添加更多的子菜单。所以我试图保持它,以便用户永远不必触摸jQuery。

有没有解决这个问题的方法?

HTML

<div id="LinkList1"> 
    <div class="menu-toggle">Menu</div> 
    <ul class="firstlevel"> 
     <li>First Link</li> 
     <li class="share-toggle">First Link 
      <ul class="secondlevel"> 
       <li>First Drop Link</li> 
       <li>Second Drop Link</li> 
      </ul> 
     </li> 
    </ul> 
</div> 

CSS

ul { display: none; } 

jQuery的

$(".menu-toggle").click(function() { 
    $("#LinkList1 ul").slideToggle("fast"); 
}); 
$(".share-toggle").click(function() { 
    $("#LinkList1 ul ul").slideToggle("fast"); 
}); 

小提琴http://jsfiddle.net/tXQzM/

回答

2

试试这个

$(".menu-toggle").click(function (e) { 
    $(this).next('ul').slideToggle("fast"); 
}); 
$(".share-toggle").click(function (e) { 
    $(this).find('ul').slideToggle("fast"); 
}); 

Check Fiddle

你似乎选择所有ul在后人的深度一般不考虑。

因此,您将使用this上下文来保存当前选定的生成事件的元素并在其中显示相应的ul

+0

这很好,谢谢! – Xarcell

+0

很高兴有帮助:) –