我已经看过各种各样的例子使用这个,我很想知道,在下面包装jQuery代码是危险的吗?
$(document).ready(function () {});
我知道它做了什么,我知道你为什么这样做,但我很好奇,如果它更不安全或只是不好的做法/风格没有它?谢谢!
答案 0 :(得分:6)
如果您的代码需要访问DOM,则使用它。
如果您只是设置类和模块,而不是实际运行它们,那么您不需要将它们包装在就绪处理程序中。
但是,如果你正在做一些需要加载元素的东西(比如添加事件处理程序),那么你需要在ready()事件中执行它。
编辑:
以下是一个示例:http://jsfiddle.net/ctrlfrk/43n8U/ 尝试注释掉addHandler函数,看看会发生什么。
(注意我已经设置jsfiddle在head标签中运行此代码,默认情况下它通常将代码放在onload事件中,这样就不需要就绪处理程序)
答案 1 :(得分:4)
这取决于您放置脚本的位置。如果在结束<body>
之前添加脚本标记,则不需要使用它,因为已经加载了DOM。另一方面,如果您将脚本标记放在<head>
部分内并访问DOM,则绝对需要使用它,否则您的脚本将无法正常工作,因为目前您的脚本执行时尚未阅读并且解析了DOM。
答案 2 :(得分:1)
答案 3 :(得分:1)
将代码包装在ready()函数中只会延迟代码的运行,直到页面加载完毕。代码不会以某种方式变得“更安全”。
但很多时候,您希望运行一些代码来查询在您的代码所在的脚本标记之后创建的DOM,或者只需要在该脚本标记之后放置文档中的某些结构。如果是这种情况,那么ready()适合你。
但通常没有正当理由不使用ready()函数,所以这就是每个代码几乎总是使用它的原因。
答案 4 :(得分:0)
我认为您还应该了解jQuery的$(window).load()
以及它与$(document).ready()
的区别
详细了解here