2011-07-04 12 views
5

私のページにJQuery UIのアコーディオンが使用されています。ページには、すべてのタブが数秒間開いていて、その後、崩壊ロードするとjqueryのアコーディオンがページの読み込み時にデフォルトで折りたたまれています

$(function() { 
    $("#accordion").accordion({ 
      active: false, 
      autoHeight: false, 
      navigation: true, 
      collapsible: true 
     }); 

}); 

:私は私のページのロードのJavaScriptコードを次のようしています。そのローディング効果である可能性があります。ページの読み込み時にJquery UIのアコーディオンが折りたたまれないようにするにはどうすればよいですか。お勧めします

+0

http://www.jsfiddle.netでこれを再現できますか? –

+0

@Andrew:リンクを確認してください。 http://jsfiddle.net/47aSC/申し訳ありません私は初めてそれを使用し、フォーマットされていません。私はjqueryリンクがライブサイトから来る必要があると思います。 – DotnetSparrow

+0

可能なdupのhttp://stackoverflow.com/questions/4633971/how-do-i-keep-jquery-ui-accordion-collapsed-by-default – Mrchief

答えて

11

ない直接の答えは、多分あなたはそれを隠しレンダリングして、その作成したときにそれを表示することができますが:

$("#accordion").accordion({ 
    active: false,    
    autoHeight: false,    
    navigation: true,    
    collapsible: true, 
    create: function(event, ui) { $("#accordion").show(); } 
}); 

更新:このフィドルは、私の作品:http://jsfiddle.net/47aSC/6/

+0

@mootinator @Merchief:私はディスプレイnoneを使用し、あなたのコードサンプル(両方)を使用しましたが、ページロード時にアコーディオンは見えず、突然表示されます。私はアコーデオンがそこにあることを望みますが、ページがロードされると崩壊します。 – DotnetSparrow

+0

ドキュメントによると、 '{active:false、collapsible:true} 'はすべてが崩壊するはずです。私は他の何かが干渉しているのだろうかと思います。あなたの問題でjsfiddleを作成できますか? – Mrchief

+0

。 jsfiddle.net/47aSC申し訳ありません私は初めてそれを使用し、フォーマットされていません。私はjqueryリンクがライブサイトから来る必要があると思います。私はasp.netコンテンツページでこれを使用しています。その理由がありますか? – DotnetSparrow

3

おそらくページの終わり近くに何かがゆっくりと読み込まれています。あなたはそれを修正することができない場合、あなたはCSSでそれに適用さdisplay:noneを有する素子を宣言しようとすることができ、そして:

$("#accordion").show().accordion({ 
     active: false, 
     autoHeight: false, 
     navigation: true, 
     collapsible: true 
    }); 

は(@Mrchiefが示すように)ことが、私ドンを行うためのクリーンな方法があるかもしれません.accordion()は隠れ要素をうまくフォーマットするとは思わない。あなたはテストする必要があります。

8

私にとって、この作品を:

$(function() { 
    $("#accordion").accordion({ 
      collapsible: true, 
      autoHeight: true, 
      active: false 

     }); 
}); 
1

最善の解決策は次のとおりです。

jquery.ui.accordion.jsを開き、29行目と31行目を編集します(私は1.10.4を使用しています)。

編集ライン29アクティブへ:

ページのヘッダーに任意のスクリプトや関数を記述する必要はありません。この方法で、真:100、 編集ライン31 折りたたみ可能に。 アクティブを高い数値(たとえば100)に設定すると、100番目のh3タグがアクティブである(基本的に存在しない)ということになります。

折りたたみ式:trueは、開いているh3タグが折りたたみ可能であることを示します。

問題を完全に解決します。

1
$(document).ready(function() { 
    $('.collapse').collapse({ 
    toggle: false 
    }); 
}); 

これは閉鎖するDOM内のすべての.collapseのクラスを設定しますが、一度だけDOMのロードが完了しました。

0

//我々はまた、ページのロードにアコーディオンを折りたたむには、以下のコードを使用することができますし、私たちは、ブートストラップ2.0私たちは、ブートストラップ3.0のコードの下に使用する必要があります賢明な他の

$(document).ready(function() { 
      if ($("#accordianId").length>0) { 
         $("#accordianId").trigger("click"); 
        } 
      }); 

を使用しているときに使用する必要があります

$("#accordianId").accordion("option", "active", 0); 
関連する問題