我将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);
}
}
答案 0 :(得分:1)
请尝试使用$(document).height();
代码获取窗口的高度。
答案 1 :(得分:0)
我认为你应该使用$(window)或$(document)而不是$(html)
答案 2 :(得分:0)
你可以使用$(document).height();但请记住,如果您的页面没有doctype标记,则chome会为两个调用报告相同的值($(window)和$(document))。 添加严格的doctype会使值按照公布的方式工作。 但你也可以使用$(body).height();