2014-03-12 125 views
2

这是我的下拉菜单代码示例。第二次点击后做些什么?

$(document).ready(function() { 
     $('.collapsedArchives ul li').click(function(){ 
      $('.collapsedArchives ul li ul').slideDown('slow'); 
     }); 
     $('.collapsedArchives ul li ul').click(function(){ 
      $('.collapsedArchives ul li ul li').slideDown('slow'); 
     }); 
    }); 

当用户点击slideDown的选择器点击第二次时,应该使用slideUp动画做什么?

谢谢。

回答

2

jQuery有.slideToggle(\[duration \] \[, complete \])

$('.collapsedArchives ul li').click(function(){ 
    $(this).find('> ul').slideToggle('slow'); 
}); 

现在你想可能取消点击也冒泡与event.stopPropagation()

$('.collapsedArchives ul li').click(function(evt){ 
    evt.stopPropagation(); 
    $(this).find('> ul').slideToggle('slow'); 
}); 
+0

多数民众赞成真棒感谢epascarello –

1

另一种选择是一个变量存储在对象

$(item).data("somevar", true); 

你可以检查,翻转dep结束案件,然后有条件哪些路线会发生什么。

1

我真的不理解这个问题清楚了,但是从提供的答案,我想你可以使用this,这将让你打开/关闭li ul并保留其当前状态的其他元素opencloesed

$('.collapsedArchives ul li').click(function() { 
    $(this).find("ul").slideToggle('slow'); 
}); 

,但我想对于一个下拉你可能要关闭所有其他il ul这比你只是点击了另外一个:

$('.collapsedArchives ul li').click(function() { 
    $(".collapsedArchives ul li ul").slideUp('slow'); 
    $(this).find("ul").slideDown('slow'); 
}); 

检查这个demo

+0

好主意感谢重播 –