0

2 つの要素のいずれかが最大の高さになるように設定します。ウィンドウ、サイドバー、#primary コンテナーの高さを確認し、設定したすべての要素の高さが最大のものであることを確認しています。ただし、このページでは、選択ボタンを操作すると ajax の負荷が発生します。その後、私のページの高さが増加します。関数によって新しい高さが取得されることを期待していましたが、Ajax ロード前の古い高さが返されます。

私のコードは以下の通りです:

//on change of the select button load ajax content, then run changeSidebarHeight()
$('#choose-pathway').change(function() {
        var url=$(this).val();
        $('#ajax-pathway-container').load(url + ' #pathway',changeSidebarHeight);
});


function changeSidebarHeight(){
        var primaryHeight=$('#primary').height();
        var sidebarHeight=$('#sidebar').height();
        var windowHeight=$(window).height();    
            //this always returns the same value, before the ajax load and after, despite the page being about 600 pixels taller
            console.log($('html').height());        
        if(primaryHeight > sidebarHeight){
             $('#sidebar').height(primaryHeight );

        }else{
              $('#sidebar').height(windowHeight );
              $('#primary').height(windowHeight);
        }

}
4

3 に答える 3

1

$(document).height();ウィンドウの高さを取得するコードを試してください 。

于 2012-12-03T11:32:43.113 に答える
0

$(html) の代わりに $(window) または $(document) を使用する必要があると思います

于 2012-12-03T11:31:04.127 に答える
0

$(document).height(); を使用できます。ただし、ページに doctype タグがない場合、chhome は両方の呼び出し ($(window) と $(document)) に対して同じ値を報告することに注意してください。厳密な doctype を追加すると、値が宣伝どおりに機能します。ただし、 $(body).height(); も使用できます。

于 2012-12-03T11:36:59.580 に答える