これがコードです。
申し込めないdisplay:none;
$(document).ready(function() {
$("#LeftNav li.navCatHead").not(":first").siblings("li").hide().end().end().first().addClass("open");
});
これがコードです。
申し込めないdisplay:none;
$(document).ready(function() {
$("#LeftNav li.navCatHead").not(":first").siblings("li").hide().end().end().first().addClass("open");
});
「display:none」を設定できないのはなぜですか? あなたのシナリオについてはわかりませんが、おそらくワークフローを少し逆にすることができます
最初にリストを表示する代わりに、いくつかの条件に基づいて特定のリストを非表示にし、最初に hide(display:none) リストを試してから、いくつかの条件に基づいて特定のリストを表示します。
このようにして、いくつかの要素が「表示されてから消える」ことにはなりません。
ドキュメントの準備が整うのを待ちません。jQuery コードは、ページ下部の body タグの終了前、または問題の要素の直後に配置できます。
<!-- ...other code... -->
<li>Sibling</li>
</ul>
<script type="text/javascript">
// this should work...
$("#LeftNav li.navCatHead").not(":first").siblings("li").hide().end().end().first().addClass("open");
</script>
<div class='content'>more stuff.</div>
</body>
</html>
を適用するdisplay:none
(を呼び出す$.hide()
) 代わりに、非表示にしようとしている項目を、非表示にしようとしているものと同じサイズに設定された空の div に置き換えてみませんか?
display:none;
読み込み時に不透明度を 0 に設定するのが良い代替手段であることがよくあります。
$("#LeftNav li.navCatHead").not(":first").siblings("li").css('opacity','0').end().end().first().addClass("open");
しかし、セレクターを見つけるためにそのような長い文字列を用意するのではなく、それぞれに新しいクラスを追加し、opacity: 0;
それをページの読み込み時に設定するだけで、はるかに高速になります。