2013-05-24 7 views
9

私は簡単な答えでなければならない本当に簡単な質問があります。表示するdivを設定します。

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

私はショーを切り替えると、現在のページに基づいて、メインメニュー非表示にするボタンの上に次のスクリプトを使用しています:私は知っている、メニューが特定のページに「閉」を開始するためには

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

を私はdisplay:none;のCSS値を含むdivに与える必要があります。 1つの小さな問題でこれはうまくいきます。

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

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

誰でも私にこれを行うための小さなスクリプトを提供できますか?私はjsと完全かつ完全なnoobです。他の誰かがこの問題をどう扱うかについて、別の勧告をしていますか?

ありがとうございました! アレックス

UPDATE!それはそれを動作するはず

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

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

+0

はあなたにもhtmlファイルを添付することはできますか? – Edward

+0

これはすごくいいですが、この部分を手伝ってくれるはずですが、このメニューをどのように読み込んで高さを設定するのかを教えてください。 – adeneo

+0

@エドワード - 私はメニューに使用しているhtmlを追加しました –

答えて

10

。例えば

$(document).ready(function() { 

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

     // (what ever your code is) 
}); 
+0

私のjsFiddleでこれが意味することを私に見せてもらえますか?ありがとう..私はかなりjs/jqueryでnoobです。 –

+0

$(document).ready(function(){ $( "div.drill-down-wrapper"); hide(); \t \t var $ drillDown = $ ( "#drilldown"); ........(あなたのコードは何ですか) }); – Ani

+0

パーフェクト。メニューが読み込まれ、次に非表示になります。再表示を切り替えます。ありがとうございました。 –

13

は、この方法を試してみてください!

私はそれが役に立ちそうです。

+0

このチップkiko-lpをありがとう。残念ながら、ページロード後にJSを介してメニューを非表示にしても、メニューには隠れていることが検出され、0の高さ値が与えられます。このスクリプトを遅らせてメニューの高さを設定する方法はわかりません最初。 –

+0

私はこの問題のjsFiddleを作成しました。見てみな! http://jsfiddle.net/fyyG2/17/ –

2

CSS値の表示を追加する:あなたのCSSファイルには何も問題ありません。 http://jsfiddle.net/dxkX6/4/

が、私はあなたのhtmlファイルにタイプミスがあることを確認できます

$("a.BNnavTrigger").click(function (event) { 
    ^

<a class="BNavTrigger">Toggle Menu</a> 
     ^

は、おそらくあなたは問題が発生している理由とは?

+0

このページにhtmlを転送する際にタイプミスがありましたが、あなたの権利はうまくいきます。 問題は、購入したプラグインで使用されているjqueryが、高さを正しく計算するために最初に表示される必要があることです。 –

+0

私はこの問題のためにjsFiddleを作成しました。見てみな! http://jsfiddle.net/fyyG2/17/ –

1

私は、私は完全にあなたの問題を理解していることを確認しないんだけど、ここで考えます:

はあなたが0に非表示にしたいものの不透明度を設定し、代わりにそれはサイズ/それを隠すの変化するのは。この方法は、それは、その寸法を維持しますが、ユーザーには表示されません。

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

して再表示し要素へ:は$("#yourId").hide();を行う準備ができて文書で

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

イスラエルに感謝します。slideToggleを使用してメニューを切り替えると、モバイルブラウザでメニューを非表示にすることができます。意味トグルで変更するには、高さの寸法が必要です。私はここで話していることを示すためにjsFiddleを作成しました。この問題のためにjsFiddleを作成しました。見てみな! http://jsfiddle.net/fyyG2/17/ –

関連する問題