2013-06-03 57 views

回答

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); 
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來代替。