2012-02-14 3 views
0

私は親divの高さからの計算に基づいてdivの高さを設定していますが、ページを更新すると、それはね上がります。ページが更新されたときにこのJavaScriptの高さの計算が中断されますが、最初に読み込まれたときには計算されません。

はここではJavaScriptを簡略化しています:

$(function() { 
    var containerHeight = $('#container').height(); 
    if ($('#toolbar').length) { 
    $('#content').css({'height' : containerHeight - 120}); 
    } else { 
    $('#content').css({'height' : containerHeight}); 
    }; 
}); 

はここで、HTMLの大まかな考えです:最初のページロードで

<div id="container" style="height: 90%;"> 
    <div id="content" style="overflow-x:scroll;">stuff here</div> 
    <div id="toolbar">stuff here</div><!-- toolbar height is 120px and only rendered on some pages --> 
</div> 

、すべてが正常に動作します。すべてのコンテンツは、スクロールでコンテンツdivに含まれています。しかし、ページを更新すると、コンテンツdivは実際のコンテンツの一番下までスクロールしません。私はChromeとSafariで作業しました。私は何かが本当にシンプルに欠けていますか

+0

いつ失敗しますか? toolbar.lengthが正しくないか、正しくない、またはいずれかの方法でtrueを返しますか?また、コードは実際にはすべての場合に正しく実行されていますか? – mrtsherman

+1

'else'文を閉じるときに予期しない'; 'があります。 - > '};' – elclanrs

+0

私は、toobarが存在するかどうかを確認するために.length()プロパティを使用しています。私は別のものを使うべきですか? – Preacher

答えて

0

私は方法や理由はわかりませんが、htmlの再作業& javascriptがうまくいきました。ここにはJavaScriptがあります。

$(document).ready(function() { 
    var contentHeight = $('#content').height(); 
    if ($('#new_comment').length) { 
    $('#viewport').css({'height' : contentHeight - 120}); 
    } else { 
    $('#viewport').css({'height' : contentHeight}); 
    }; 
}); 
0

多分、キャッシングのあるものと注文のものがページに読み込まれていますか?関数をどこで呼びますか? $(document).ready(function(){...})かその行に沿って何かを呼び出すようにしてください

+0

$(document).ready内から呼び出されます – Preacher

関連する問題