2015-06-05 64 views
0

我有一个<li>其中有两个<ul>。第二个<ul>是隐藏的,当我点击第一个<ul>时应该显示。slideToggle()无法正常工作

我试过这个:$(me).parent().parent().find("ul").slideToggle(); $(me)是这个的一个实例和<li>包装元素。

现在的问题是隐藏的<ul>显示,但隐藏可见<ul>隐藏。 它不应该隐藏。我想隐藏<ul>显示和隐藏,当我点击可见<ul>

另一件要提的是,我在一个Ajax调用的函数成功使用此代码:

success:function(data){ 
    $(me).parent().parent().find("ul").slideToggle(); 
} 

也许有人可以帮助我。我probaply只需要调整.find(),但我不知道如何要做到这一点....

回答

1

您可以在jQuery中使用CSS子选择。下面的小提琴演示如果您在第一个UL内点击,第二个将滑动。

$('li ul:first-child li').click(function(){ 
    $(this).parent().parent().find("ul:nth-child(2)").slideToggle(); 
}); 

https://jsfiddle.net/mqjvt2nu/2/

还有一堆的方式来做到这一点。你可以指定类或id的目标。你可以在jQuery中使用.siblings()函数。您也可以使用.next().prev()函数。

+0

这对我有用,thx – greedsin

0

尝试使用。不是方法:

$(me).parent().parent().find("ul").not(':visible').slideToggle();