slideToggle()无法正常工作

时间:2015-06-05 18:23:27

标签: javascript jquery

我有一个<li>,其中有两个<ul>。第二个<ul>是隐藏的,应该在我点击第一个<ul>时显示。

我试过这个:$(me).parent().parent().find("ul").slideToggle(); $(me)是此实例以及<li> Wrapper-Element。

现在问题是显示隐藏的<ul>,但隐藏了可见的<ul>。 并且它不应该隐藏它。当我点击可见<ul>时,我希望隐藏的<ul>显示和隐藏。

另外需要提及的是,我在ajax调用的成功函数中使用此代码:

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

也许有人可以帮助我。我只是需要调整.find(),但我不知道该怎么做....

2 个答案:

答案 0 :(得分: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()函数。

答案 1 :(得分:0)

尝试使用.not方法:

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