1

我正在使用以下下拉菜单。它工作得很好,但是,如果单击正文中的某处或单击另一个下拉列表,我无法弄清楚如何获得一个打开的下拉列表来滑动。

$(document).ready(function () { 
$('.nav li').click(function() {

  var slideToggle = this;
  if ($('ul', this).is(':visible')) {
      $('ul', this).slideUp(function() {
          $(slideToggle).removeClass('active');
      });
  }
  else {
      $('ul', this).slideDown();
      $(slideToggle).addClass('active');
  }
});
});

在此处查看操作:http: //jsfiddle.net/Ngh5C/1/

什么是我所问的最简单的方法?

4

1 回答 1

2

利用事件冒泡并将点击处理程序绑定到合适的父容器(例如主体)。检查处理程序中的目标,如果它不是您的菜单之一,请使用选择器找到打开的菜单并关闭它。

这是一个简单的示例作为起点:

http://jsfiddle.net/Ngh5C/6/

试试这个小提琴,一次只打开一个:

http://jsfiddle.net/Ngh5C/7/

如果您真的只想关闭单击的项目的邻居(这是一个奇怪的要求),那么这有效:

http://jsfiddle.net/Ngh5C/8/

于 2012-10-18T15:56:47.800 回答