2015-10-06 181 views
1

我创建一个手风琴,你可以在http://jsfiddle.net/ybgjub4g/手风琴重开

每一个手风琴的手风琴点击当前手风琴打开关闭看到,唯一的问题是,当我点击当前打开的手风琴,关闭它,然后它关闭并重新打开,我无法弄清楚为什么。

$(document).ready(function() { 
    (function($) { 
     var allPanels = $('.accordion > span').hide(); 
     $('.accordion > .question').click(function() { 
      allPanels.slideUp(); 
      $(this).next('span').slideDown(); 
      $('.accordion.current').removeClass('current'); 
      $(this).parent().addClass('current'); 
      return false; 
     }); 
    } 
    )(jQuery); 
}); 

回答

1

这里是一个DEMO

JS:

$(document).ready(function() { 
(function($) { 
    var allPanels = $('.accordion > span'); 

    $('.accordion > .question').click(function() { 
     var _this = this; 

     $('.current > span ').slideUp() 

     if(!$(_this).parent().hasClass('current')){ 
      $(_this).next('span').slideDown(); 
      $('.accordion.current').removeClass('current'); 
      $(_this).parent().addClass('current'); 
     }else{ 

      $(_this).parent().removeClass('current'); 
     } 




     return false; 
    }); 
} 
)(jQuery); 
}); 
+0

@ 6h8j5我认为它适合你吗? – guvenckardas

+0

如果您点击打开的标题,则会关闭并自动重新打开。 – bigdaveygeorge

+0

对不起,我正在嘲笑它 – guvenckardas

1

你可以试试这个解决方案

$(".question").click(function(){ 

    if(false == $(this).next().is(':visible')) { 
     $('span').slideUp(300); 
    } 
    $(this).next().slideToggle(300); 
}); 

http://jsfiddle.net/ybgjub4g/5/

0

使用固定:

$(document).ready(function() { 
    $(".accordion span").hide(); 
    $(".accordion .question").click(function(){ 
     if(false == $(this).next().is(':visible')) { 
      $('span').slideUp(300); 
     } 
     $(this).next().slideToggle(300); 
     $('.accordion.current').removeClass('current'); 
     $(this).parent().addClass('current'); 
    }); 
});