Javascript - 如何正确调用函数
问题描述:
我真的不明白如何在文档准备好时正确调用Javascript函数。我的目标是根据浏览器窗口的高度来调整div的大小,然后从SO上的另一个答案中获取这些代码。我究竟做错了什么?Javascript - 如何正确调用函数
function resizeElementHeight(element) {
var height = 0;
var body = window.document.body;
if (window.innerHeight) {
height = window.innerHeight;
} else if (body.parentElement.clientHeight) {
height = body.parentElement.clientHeight;
} else if (body && body.clientHeight) {
height = body.clientHeight;
}
element.style.height = ((height - element.offsetTop) + "px");
}
$(document).ready(resizeElementHeight($('#global_image')));
我试图调用元素的ID为“global_image”,但我得到“未定义不能设置属性高度”,我觉得丢了怎么提供正确的元素的功能。谢谢你的帮助!
答
功能resizeElementHeight需要一个DOM元素,而不是一个JavaScript对象。为了扩大techfoobar的答案,你应该将其更改为:
$(document).ready(function() {
resizeElementHeight($('#global_image')[0]);
});
答
ready()
需要函数作为它的参数。现在,您拨打resizeElementHeight()
并将其返回值传递到ready()
。
在您当前的代码中,在调用resizeElementHeight()
时,DOM尚未准备好,元素#global_image
尚未在DOM树中。
您应将其更改为:
$(document).ready(function() {
resizeElementHeight($('#global_image'));
});
+0
谢谢你的解释! – 2013-05-05 12:24:35
答
DOM对象,当你通过打电话resizeElementHeight.replace未完全加载是:
$(document).ready(function() {
resizeElementHeight($('#global_image')[0]);
});
这工作很好。谢谢! – 2013-05-05 12:27:09