2013-11-22 2 views

답변

3

$(function() { 
    $('#accordion .content').hide(); 
    $('#accordion h2:first').addClass('active').next().slideDown('slow'); 
    $('#accordion h2').click(function() { 
     if ($(this).next().is(':hidden')) { 
      $('#accordion h2').removeClass('active').next().slideUp('slow'); 
      $(this).toggleClass('active').next().slideDown('slow'); 
     } 
    }); 
}); 
. 이 시도 :

$('#accordion .content').hide(); 
$('#accordion h2:first').addClass('active').next().slideDown('slow'); 

$('#accordion h2').click(function() { 
    var openPanel = !$(this).hasClass('active') 
    $('#accordion h2').removeClass('active').next().slideUp('slow'); 
    openPanel && $(this).toggleClass('active').next().slideDown('slow'); 
}); 

Example fiddle

+0

'.stop()는'또한 영업 이익에 도움이 될 것입니다. –

+0

빨리 지쳐라. 매력처럼 작동합니다. @Rory McCrossan – user2041174

+0

@ user2041174 감사합니다. 기꺼이 도와 드리겠습니다. –

0

이 숨겨져 있지 않은 경우 창을 닫는 click 이벤트 핸들러에 else 블록을 추가합니다.

$(function() { 
    $('#accordion .content').hide(); 
    $('#accordion h2:first').addClass('active').next().slideDown('slow'); 
    $('#accordion h2').click(function() { 
     if($(this).next().is(':hidden')) { 
      $('#accordion h2').removeClass('active').next().slideUp('slow'); 
      $(this).toggleClass('active').next().slideDown('slow'); 
     }else{ 
      $('#accordion h2').removeClass('active').next().slideUp('slow'); 
     } 
    }); 
}); 

JS 바이올린 :http://jsfiddle.net/CzE3q/720/

관련 문제