拨动开/关手风琴

时间:2014-11-17 17:57:05

标签: javascript jquery css

我需要使用相同的按钮打开/关闭手风琴菜单。

目前它刚刚打开,我无法关闭它。

我的代码在下面,或者在这里我的jsFiddle:http://jsfiddle.net/ndczc728/5/

//Accordion
(function($) {

var allPanels = $('ul.sub-level').hide();

$('.click-me').click(function() {
    $this = $(this);
    $target =  $this.next();

    if(!$target.hasClass('active')){
        allPanels.removeClass('active').slideUp();
        $target.addClass('active').slideDown();
    }

    return false;
});

})(jQuery);

3 个答案:

答案 0 :(得分:1)

非常简单......只需将else语句添加到If语句中:

//Accordion
(function($) {

    var allPanels = $('ul.sub-level').hide();

    $('.click-me').click(function() {
      $this = $(this);
      $target =  $this.next();

      if(!$target.hasClass('active')){
         allPanels.removeClass('active').slideUp();
         $target.addClass('active').slideDown(); 
      }
      else
      {
         allPanels.removeClass('active').slideUp();
      }

    return false;
    });

})(jQuery);

使用JSFiddle:http://jsfiddle.net/ndczc728/15/

答案 1 :(得分:0)

你从未切换过它。

http://jsfiddle.net/ndczc728/8/

    if(!$target.hasClass('active')){
         $target.addClass('active').slideDown();
      }
      else
      {
         $target.removeClass('active').slideUp();
      }

答案 2 :(得分:0)

这是跟踪计数的简单修复:

Demo

(function ($) {
    $('ul.sub-level').hide();
    var c = 1;
    $('.click-me').click(function () {
        c++ % 2 == 0 ? $('ul.sub-level').slideUp() : $(this).next().slideDown();
        return false;
    });
})(jQuery);