在我的代码中,我将事件处理程序绑定到document
:
$(document).bind("myEvent", function() { ... });
我是否必须等待ready事件(即使用$(document).ready
)来绑定事件处理程序,特别是当我将它们绑定到document
时?
答案 0 :(得分:5)
$(document).ready
用于确保DOM在尝试与之交互之前就绪。如果您将脚本放在<head>
中,那么如果您与DOM交互,我建议您将代码放在此块中。如果你把你的脚本放在DOM元素之后<body>
的底部,那么它不是必需的 - 但我仍然建议使用它。
<强>更新强>
将事件处理程序附加到document
并不要求代码在ready
处理程序中,但它通常用于一致性,有些人(包括我)将所有脚本放在附加事件处理程序中({1}}处理程序中的(无论目标)。
您会注意到ready
的文档在附加处理程序之前必须存在元素。
处理程序附加到jQuery对象中当前选定的元素,因此这些元素必须存在于调用.bind()的位置。
另请注意,从{jQuery 1.7开始,bind()
是.on()
的首选和建议方法