我应该等待文件准备好吗?

时间:2012-11-21 11:11:03

标签: javascript jquery

在我的代码中,我将事件处理程序绑定到document

$(document).bind("myEvent", function() { ... });

我是否必须等待ready事件(即使用$(document).ready)来绑定事件处理程序,特别是当我将它们绑定到document时?

1 个答案:

答案 0 :(得分:5)

$(document).ready用于确保DOM在尝试与之交互之前就绪。如果您将脚本放在<head>中,那么如果您与DOM交互,我建议您将代码放在此块中。如果你把你的脚本放在DOM元素之后<body>的底部,那么它不是必需的 - 但我仍然建议使用它。

<强>更新

将事件处理程序附加到document并不要求代码在ready处理程序中,但它通常用于一致性,有些人(包括我)将所有脚本放在附加事件处理程序中({1}}处理程序中的(无论目标)。

您会注意到ready的文档在附加处理程序之前必须存在元素。

  

处理程序附加到jQuery对象中当前选定的元素,因此这些元素必须存在于调用.bind()的位置。

另请注意,从{jQuery 1.7开始,bind().on()的首选和建议方法