2011-05-07 9 views
3

jQuery Accordionを使用しています。ページが読み込まれると、すべてのdivが1秒間点滅してから非表示になります。ロード中にdivが非表示になって欲しいです。jQuery UIアコーディオンウィジェットでページのロード時にdivを非表示にする

$('#accordion div').hide(); 
$('#accordion2 div').hide(); 

jQuery(document).ready(function($) {... 

しかし、これは動作していないと私はまだ宣言されていない$のショートカットを使用しているからだと疑う:私はそうのようなドキュメント準備チェックのjavascriptの外を経由して隠されたにそれらを設定することであることやったと思いました。

ページが読み込まれている間にhide()関数が呼び出され、読み込みが完了するまで待ってからdivを非表示にするにはどうすればよいですか?

ありがとうございます!

+0

あなたのhtmlのような詳細を与えてください。あなたはおそらくまだ存在しないものを隠そうとしています。 – c0mm0n

答えて

7

要素が存在しないうちに非表示にしているためです。ページの終わりにコードを置くとうまくいくが、それでも分割しても表示されていないかどうかは分からない。彼らはexistanceに入って来るとき

使用CSSは、彼らがすでに隠されている、その後、代わりにそれらを非表示にするには:

これらのステートメントがまだロードされていない何かを隠そうと
<style type="text/css"> 

#accordion div, #accordion2 div { display: none; } 

</style> 
+0

私はこれを前に試してみたが、うまくいかなかったと思ったが、ただ今試してみたところ、うまくいった。私は、コードが適切に動作するのを止める何か他のものを持っていたに違いない。ありがとう。 – Yazmin

+0

これは私にとって完璧に機能します。これはベストプラクティスですか? – Kwestion

+1

@Kwestion:はい、このメソッドは、要素を最初に隠すための最良の方法です。あなたがページのためのスタイルシートを持っているなら、むしろそのスタイルタグの中にルールを置くでしょう。 – Guffa

3

:で

$('#accordion div').hide(); 
$('#accordion2 div').hide(); 

をjQueryを書く必要があります。

$(function(){ 
    $('#accordion div').hide(); 
    $('#accordion2 div').hide(); 
}); 

したがって、コードはスケルトンの後に実行されますhtml文書の読み込み

+0

この解決策も同様に機能しますが、ページの更新時にすべてのdivをフラッシュします。コードを修正していただきありがとうございます。 – Yazmin

関連する問題