2013-01-24 280 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

相关问题