2011-09-12 5 views
0

私は以前、単純なjqueryアコーディアンに関する質問を投稿しました。回答は役に立ちましたが、私が今質問している質問は、その質問に対するフォローアップです。タブを折りたたむようにして、すべてのタブを閉じるようにしてください。読むために「ようこそ」をクリックし、もう一度クリックすると閉じます。現在、タブの1つは開いたままです。 これは、あなたが何らかの形で、実際にそれをスライドするか、それを下にスライドする前に、アコーディオンの状態を確認する必要があります。これは、linkすべてのjqueryのアコーディオンタブを閉じます

答えて

0
$('.va-content').slideUp(); 

は、すべてのタブに

0

を閉じているコード

$(document).ready(function() { 
      $('#va-accordion .va-content').hide(); 
      $('.va-heading').click(function(){ 
        $('#va-accordion .va-content').slideUp(); 
        $(this).next().slideDown(); 
        return false; 
      }); 

}); 

ですこれらのアクションのどれを実行するかを定義します。

アコーディオンが開いているかどうかを調べる単純なif文は、問題を解決します。

あなたは正しい軌道に乗っているようですが、幸いです。

0

slideUp()を呼び出す前にコンテンツdivが表示されているかどうかをテストします。そうである場合は、slideDown()に電話しないでください。

$(document).ready(function() { 
    $('#va-accordion .va-content').hide(); 
    $('.va-heading').click(function() { 
     var contentDiv = $(this).next(); 
     var isVisible = contentDiv.is(":visible"); 
     $('#va-accordion .va-content').slideUp(); 
     if (!isVisible) contentDiv.slideDown(); 
     return false; 
    }); 

});