2014-03-12 171 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

好主意感謝重播 –