【发布时间】:2012-03-19 05:53:34
【问题描述】:
假设我有一个包含 javascript 文件的 HTML 页面:
base.js 是这样的:
$(document).ready(function () {
obj.init();
}
// ..............
var obj = {...};
令人惊讶的是,有时(并非一直如此)Firebug 在obj.init() 调用时向我显示未定义的错误!我的理解是,文档就绪意味着所有 html 元素,包括下载和执行的图像、javascript 文件(?)。
我相信为了找到这个错误的根本原因,我们需要了解“文档准备好”究竟是什么意思?有人有什么见解吗?
=============================
更新:也许我不应该在这里提及图像,我主要关心的是 javascript 文件。 “DOM 完全构造”是否包括“所有已执行的 javascript 代码”?
=============================
再次更新:这里的人们似乎同意事件“document.ready”在所有 javascript 代码下载并执行之前不会被触发。因此,问题的根本原因仍然未知。在我将 $(document).ready 块移动到 javascript 文件的底部后,我确实绕过了这个问题。
【问题讨论】:
-
ready !== load“文档就绪意味着所有包括图片的javascript文件下载和执行”尤其是错误的。 -
@mrtsherman 是对的,“文档准备就绪”取决于浏览器,而不是 JQuery。
-
图片不一定要加载到 document.ready 上。
标签: jquery document document-ready