2011-11-13 3 views
0

jQueryを使用してアコーディオンメニューを構築しようとしていますが、不安定なアニメーションが流れています。ジャンプは、divの高さを設定しないことによって発生します。私の問題は、各divが内容に基づいて異なる高さになることです。ですから、どうすればjavascriptを使って各divをクラス 'サブメニュー'で調べ、高さを測定して設定するのでしょうか。ここで複数のdivハイトを測定するJavascript

は、私がこれまで持っているものです。

$('.submenu').each(function() { 
    var divh = $(this).height(); 
    $(this).css('height', divh + 'px'); 
}); 

私はに実行しているどのようなことが一つだけ.submenu div要素を測定するようで、その高さにそれらのすべてを設定していることです。思考?前もって感謝します!

+0

アコーディオンの 'autoHeight'オプションを使うとこれを解決できます。それぞれのdivの高さを別々に設定する必要はありません。 – arb

+0

私はここで何が起こっているのか分かりません。あなたがやっていることは、要素の高さを取得して、その高さに再び設定しているように見えます。ちょうど最も高いセクションを決定し、すべてのその高さを設定するように見えるが、私はautoHeightオプションを試してみるつもりだが、私は '$(this)).height(divh);' – mattsven

+0

@ Zero21xxx – codybuell

答えて

1

をあなたのための現在のdivの高さを追加する必要があり、私は問題を発見したと信じています。私は$(document).ready()関数で上記のスクリプトを読み込んで、DOMを読み込み、その後測定していました。 $(window).load()関数に移動し、内容を見て高さを測定します。説明のポイントとして.subenuクラスのdivはアコーディオンdivです。

$(window).load(function(){ 
    $('.submenu').each(function() { 
    var divh = $(this).height(); 
    $(this).css('height', divh + 'px'); 
    }); 

    $('.submenu').hide(); 
}); 
0

次のようになりすぎているとします

$('.submenu').each(function() { 
    var divh = $(this).height(); 
    $('.divClass').css('height', $('.divClass').height() + divh + 'px'); 
}); 

あなたは常にあなたのアコーディオンのdivに

+0

変数divhはちょうどそれを行う必要があります。 – codybuell

+0

mhhh問題を理解していますが、コードを編集しました.DivClassは、アコーディオンを含むdivにする必要があります – GregM

+0

申し訳ありませんが、.submenuクラスはaccordion divです。私はどこに問題があるのか​​を見つけ、それを答えに入れます。助けてくれてありがとうグレッグ! – codybuell

関連する問題