13

簡単に答えられるはずの非常に簡単な質問があります。

jQuery を使用してメニュー レベルを「ドリルダウン」するモバイル ナビゲーション メニューがあります。レベルがロードされるたびに、jQuery はメニューの高さを決定し、それに応じて設定します。

ボタンで次のスクリプトを使用して、現在のページに基づいてメインメニューの表示と非表示を切り替えています。

<script type="text/javascript">
    (function ($) {
        $("a.BNnavTrigger").click(function (event) {
            event.preventDefault();
            $("div.drill-down-wrapper").slideToggle("9000");
        });
    })(jQuery);     
</script>

メニューを特定のページで「閉じた」状態で開始するにdisplay:none;は、含まれている div に css 値を指定する必要があることを知っています。これはすべて、1 つの小さな問題で正常に機能しています。

最初にメニューを非表示にすると、jQuery ドリルダウン メニュー プラグインが非表示であることを検出し、メニューの高さを 0px に設定します。最初にメニューが非表示になっているページでメニューを切り替えると、ペイン内の他のすべてのコンテンツが正しく切り替えられますが、メニュー自体は 0 の高さで動かなくなります。

私の脳では、この問題に対する明白な答えは、メニューがロードされて高さが設定された後、javascript を介して含まれるメニュー div を非表示にすることです。この音は正しいですか?

これを行うための小さなスクリプトを誰かに提供してもらえますか? 私はjsの完全な初心者です。この問題を処理する方法について、他の誰かが別の推奨事項を持っていますか?

御時間ありがとうございます!アレックス

アップデート!

問題の JS フィドル: http://jsfiddle.net/fyyG2/17/ *

4

5 に答える 5

17

ドキュメントの準備ができています$("#yourId").hide();

例えば:

$(document).ready(function () {

     $("div.drill-down-wrapper").hide();
     var $drillDown = $("#drilldown");

        // (what ever your code is)
 });
于 2013-05-28T20:31:32.823 に答える
16

この方法を試してください:

$("#yourId").css("display","none");

それはうまくいくはずです!

お役に立てば幸いです。

于 2013-05-25T16:30:12.027 に答える
1

あなたの問題を完全に理解したかどうかはわかりませんが、ここに考えがあります:

サイズを変更したり隠したりするのではなく、隠したいものの不透明度を0に設定します。このようにして、サイズは維持されますが、ユーザーには表示されません。

$('#id').css('opacity',0);

要素を再表示するには:

$('#id').css('opacity',1);
于 2013-05-28T20:28:27.357 に答える