0

我有这个切换滑动打开一个菜单并添加一个活动类来让你知道它的打开,我把它拼凑在一起并且有一个小故障..

$(".parents-toggle > a").click(function () {
          $(this).toggleClass('active');
         $(".parents-toggle > ul.sub-menu").not($(this).siblings()).slideUp();
         $(this).siblings(".sub-menu").slideToggle();
      });

      $(".parents-toggle-inner > a").click(function () {
      $(this).toggleClass('active');
         $(".parents-toggle-inner > ul.sub-menu").not($(this).siblings()).slideUp();
         $(this).siblings(".sub-menu").slideToggle();
      });​

如果您也单击任何其他按钮,它也会保持活动状态,因此除非您关闭它,否则保持活动状态......

如果您单击页面上的任何其他链接,是否可以删除活动课程?因此,即使有另一个与此不同的切换菜单,理想情况下任何链接..?

http://jsfiddle.net/24k5U/2/

如您所见,您会获得大量橙色/活动按钮

任何帮助都会很棒。

4

2 回答 2

1

$('.active').removeClass('active');在点击事件中添加一个。那应该解决它。

这样,您的代码现在变为:

$(".parents-toggle > a").click(function () {
    $('.active').removeClass('active');  // <---- This line added
    $(this).toggleClass('active');
    $(".parents-toggle > ul.sub-menu").not($(this).siblings()).slideUp();
    $(this).siblings(".sub-menu").slideToggle();
});

基本上,您所做的是确保在单击链接class=active之前没有链接。toggleClass()

您可以对内部链接或子链接执行相同的操作。

于 2012-11-21T12:00:48.013 回答
0

在将其应用于任何其他元素之前,从同一级别的其他元素中删除该类:

  $(".parents-toggle > a").click(function () {
      $(".parents-toggle > a").removeClass('active');
      $(this).toggleClass('active');
      $(".parents-toggle > ul.sub-menu").not($(this).siblings()).slideUp();
      $(this).siblings(".sub-menu").slideToggle();
  });
于 2012-11-21T11:58:46.770 回答