2

这是代码:

(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/

再次单击时如何使手风琴折叠面板?

4

2 回答 2

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()

PS:不要误用return false,改用正确的event.preventDefault

于 2014-01-30T11:23:26.053 回答
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);
于 2013-06-03T10:34:59.973 回答