如何在ajax加载后获得页面的高度?

时间:2012-12-03 11:27:53

标签: jquery ajax

我将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);
        }

}

3 个答案:

答案 0 :(得分:1)

请尝试使用$(document).height();代码获取窗口的高度。

答案 1 :(得分:0)

我认为你应该使用$(window)或$(document)而不是$(html)

答案 2 :(得分:0)

你可以使用$(document).height();但请记住,如果您的页面没有doctype标记,则chome会为两个调用报告相同的值($(window)和$(document))。 添加严格的doctype会使值按照公布的方式工作。 但你也可以使用$(body).height();