如何让jQuery手风琴崩溃?

时间:2013-06-03 09:51:36

标签: jquery-ui-accordion

以下是代码:

(function($) {

var allPanels = $('.accordion > dd').hide();

$('.accordion > dt > a').click(function() {
allPanels.slideUp();
$(this).parent().next().slideDown();
return false;
});

})(jQuery);

http://jsfiddle.net/chriscoyier/VPfJ5/3/

再次点击时,如何让手风琴折叠面板?

2 个答案:

答案 0 :(得分:0)

这就是答案:

(function($) {

var allPanels = $('.accordion > dd').hide();

$('.accordion > dt > a').click(function() {
    allPanels.slideUp();

    if($(this).parent().next().is(':hidden'))
    {
        $(this).parent().next().slideDown();
    }

    return false;
 });

})(jQuery);

答案 1 :(得分:0)

更简单且防弹方法:LIVE DEMO

var allPanels = $('.accordion > dd').hide();

$('.accordion > dt > a').click(function( e ) {
   e.preventDefault(); // don't use return false;
   allPanels.stop().slideUp();
   $(this).parent().next('dd').stop().slideToggle();
 });

诀窍是

  • slideUp所有小组
  • 但在当前的
  • 上使用slideToggle 正确使用.stop()
  • 防弹

P.S:不要滥用return false,而是使用正确的event.preventDefault