Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery$(窗口)。动态添加内容的高度错误_Javascript_Jquery_Height_Jquery Load - Fatal编程技术网

Javascript jQuery$(窗口)。动态添加内容的高度错误

Javascript jQuery$(窗口)。动态添加内容的高度错误,javascript,jquery,height,jquery-load,Javascript,Jquery,Height,Jquery Load,我正在使用jQuery动态定位我的页脚,现在的问题是 $(window).height(); 是错误的,因为我包含了一个导航,使用: $('.navigation').load('includes/navigation.html'); 之后,我检查查看,但是$(window).height()不包括添加项目的高度,我在检查高度之前添加项目,这样就不会出现问题。我还尝试了$(document.ready()和$(window.load()) 这是完整的代码 $(window).load(fun

我正在使用jQuery动态定位我的页脚,现在的问题是

$(window).height();
是错误的,因为我包含了一个导航,使用:

$('.navigation').load('includes/navigation.html');
之后,我检查查看,但是$(window).height()不包括添加项目的高度,我在检查高度之前添加项目,这样就不会出现问题。我还尝试了$(document.ready()和$(window.load())

这是完整的代码

$(window).load(function(){


    $('.navigation').load('includes/navigation.html');

    var docheight = $(document).height();
    var winheight = $(window).height();

    console.log('window: ' + winheight + ', document: ' + docheight);
});

这是正确的行为

$(window).height()
是浏览器窗口的高度,不受从DOM中添加/删除的元素的影响


$(document).height()
是DOM中文档的高度,将受到DOM修改的影响。

您应该使用
load()
complete回调来获取新文档的高度,否则由于
load()
是异步的,您将在向DOM添加新内容之前获取高度:

$('.navigation').load('includes/navigation.html', function(){
    var docheight = $(document).height();
});

您应该在
load()
完全回调中设置逻辑,
load()
是异步的。追加DOM元素不会影响
$(窗口)。height()
,这是正确的行为。@RoryMcCrossan Ya,对不起,即使这样OP也应该使用
$(文档)。height(),对吗?!是的。尽管他说他是。那件案子还有问题吗?你说得对!使用.load回调可以工作!如果你回答我,我会接受的!:)谢谢