2012-01-12 146 views
1

我有下面的手風琴,但是當一個項目打開時,如果你再次點擊它,它將重新打開而不是關閉。自定義手風琴

我不確定適應下面的代碼來達到此目的的最佳方法嗎?

任何幫助或建議將是偉大的?

由於

$('.acc h2').click(function() { 
    $('.acc h2.open').nextUntil('h2').stop(true, true).slideToggle(); 
    $('.acc h2.open').removeClass('open'); 
    $(this).nextUntil('h2').stop(true, true).slideToggle(900); 
    $(this).toggleClass('open'); 
}); 

<div class="acc"> 

    <h2>1. Title 1</h2> 
    <div><p>text 1</p></div> 

    <h2>2. Title 2</h2> 
    <div><p>text 2</p></div> 

    <h2>3. Title 3</h2> 
    <div><p>text 3</p></div> 

</div><!--END acc--> 
+0

您是否希望獨立開啓或關閉,或一次只打開一個? – kwelch 2012-01-12 19:43:24

+0

一次打開。 – Jemes 2012-01-12 19:51:06

回答

2

解決方案:

$('.acc h2').next('div').hide(); 
$('.acc h2').click(function() { 
if($(this).next('div').is(':visible')) 
{ 
    $(this).next('div').slideUp();  
} 
else{ 
    $('.acc h2').next('div').slideUp(); 
    $(this).next('div').slideToggle(); 
}  
}); 

演示:

http://jsfiddle.net/5NAhV/1/

http://jsfiddle.net/5NAhV/2/

+0

感謝Mandeep的幫助,完美地工作。 – Jemes 2012-01-12 20:17:08

+0

樂意提供幫助。 – 2012-01-12 20:18:26