1

これがコードです。

申し込めないdisplay:none;

$(document).ready(function() {
    $("#LeftNav li.navCatHead").not(":first").siblings("li").hide().end().end().first().addClass("open");
});
4

5 に答える 5

2

「display:none」を設定できないのはなぜですか? あなたのシナリオについてはわかりませんが、おそらくワークフローを少し逆にすることができます

最初にリストを表示する代わりに、いくつかの条件に基づいて特定のリストを非表示にし、最初に hide(display:none) リストを試してから、いくつかの条件に基づいて特定のリストを表示します。

このようにして、いくつかの要素が「表示されてから消える」ことにはなりません。

于 2010-04-29T16:09:13.527 に答える
1

ドキュメントの準備が整うのを待ちません。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>
于 2010-04-29T18:07:18.013 に答える
1

を適用するdisplay:none(を呼び出す$.hide()) 代わりに、非表示にしようとしている項目を、非表示にしようとしているものと同じサイズに設定された空の div に置き換えてみませんか?

于 2010-04-29T15:40:08.233 に答える
1

display:none;読み込み時に不透明度を 0 に設定するのが良い代替手段であることがよくあります。

$("#LeftNav li.navCatHead").not(":first").siblings("li").css('opacity','0').end().end().first().addClass("open");

しかし、セレクターを見つけるためにそのような長い文字列を用意するのではなく、それぞれに新しいクラスを追加し、opacity: 0;それをページの読み込み時に設定するだけで、はるかに高速になります。

于 2010-04-29T15:44:58.083 に答える