2013-01-24 467 views
1

我有以下javascript打開下拉菜單,通過添加類別「丟棄」,當我的導航點擊鏈接。關閉打開下拉列表時,點擊打開另一個

$("li.dropdown-control > a").click(function() { 
      var nextSibling = $(this).next(); 
       nextSibling.toggleClass("dropped"); 
}); 

我的問題是,當一個下拉列表打開時,它不會關閉,當你點擊打開另一個。如何查找打開的下拉菜單,並在另一個打開時關閉它?

如:

$("li.dropdown-control > a").click(function() { 
      $('.dropped').removeClass('dropped'); 
      var nextSibling = $(this).next(); 
       nextSibling.addClass("dropped"); 
}); 

回答

1

如果你只是想在任何時候一個下拉菜單打開,你可能要切換你想開一個前

+0

這工作,關閉其他開放下降下但是,現在它不會讓我關閉一個已經通過點擊鏈接打開的下拉菜單。所以如果我打開一個下拉列表,然後嘗試關閉它,它將不會關閉。但它會關閉,如果我點擊不同的下拉菜單... – user1836025

+0

後續問題和解決方案:http://stackoverflow.com/a/14508025/901048 – Blazemonger

2

你能不能刪除所有類下降從之前標記爲「已刪除」的所有內容中刪除已刪除的類。這裏就是我會做...

$("li.dropdown-control > a").click(function() { 
     $('.dropped').removeClass('dropped'); 
     var nextSibling = $(this).next(); 
      nextSibling.toggleClass("dropped"); 
}); 
0

試試這個

JS代碼

$("li.dropdown-control > a").click(function() { 
      $(this).removeClass("dropped"); 
      var nextSibling = $(this).next('ul'); 
       nextSibling.addClass("dropped"); 
}); 

LIVE DEMO

相關問題