$(function(){})在body而不是head中

时间:2013-02-03 07:22:48

标签: javascript html

$(function(){})与jquery的$(document).ready相同,所以我想知道我是否可以将它放入体内 而不是头? 我只看到将脚本放在页面的不同部分的行为,作为在不同时间执行它的问题。是真的?我可以将脚本放在页面中间的div中吗?它会影响DOM的加载方式吗?

3 个答案:

答案 0 :(得分:3)

  

我只看到将脚本放在页面的不同部分的行为,作为在不同时间执行它的问题。这是真的吗?

是的,但您正在谈论的脚本只进行一次函数调用(ready)。无论如何,当DOM准备好时,回调将在稍后调用。

  

我可以将脚本放在页面中间的div中吗?

是。但同样,如果有问题的脚本只是调用ready(直接或通过快捷方式),那就不重要了。我会阻止你在你的标记上乱扔乱码;最好尽量保持两者在很大程度上分开。

  

它会影响DOM的加载方式吗?

只有在脚本中使用document.write时(即便如此,它不会影响DOM的加载方式,但可能会影响其内容)。


如果您可以选择script标记的位置(例如,您没有编写JavaScript库或jQuery插件,您的脚本位于您控制的页面上),那么几乎没有任何理由可以使用ready。而是将脚本标记放在页面的末尾,就在结束</body>标记之前。参考文献:

答案 1 :(得分:2)

document.ready的目的是等待DOM准备就绪,如果你将脚本放在正文结束标记之前,或者只是在正在修改的html之后,那么你不需要document.ready虽然它应该仍然有用。

答案 2 :(得分:0)

这会有效,但这是不好的做法。如果可以的话,你应该把你的脚本放在网页的末尾而不是头脑中。除非你有一些东西(比如文档就绪功能),你需要先加载。