如果我的jQuery脚本放置在页面所有HTML代码的下方,我是否仍需要等待
$(document).ready
才能使用jQuery来查找页面元素?$(document).ready
才能使用jQuery来查找页面元素?$(function() {}
等同于 $(document).ready(function(){})
。$(function() {}
一次不会使事情变得足够缓慢,以至于你不在意。查看 https://dev59.com/n13Ua4cB1Zd3GeqP_VGJ 并阅读被接受答案的评论。使用 $(function() {}
平均需要大约2-3毫秒。顺便说一下,如果您使用php,可以创建一个函数或类将所有js放入1个文件中的1个 $(function() {}
中,或者您也可以在js中执行此操作。研究编程设计模式。 - Yamiko如果脚本放在与DOM元素之下,与页面上的DOM元素交互的代码不需要$(document).ready
。
最好的做法是将它们放在结束标签</body>
之前。
您不需要使用jQuery的ready
函数,但是您的代码必须考虑到这一点。任何基于click
或其他绑定的处理程序可能无法正确附加到选择器,但是像live
和$.ajax
这样的处理程序可以按预期工作。
在使用脚本加载器或AMD时要小心使用此方法。 jQuery 必须可用,并且在加载时必须阻止。在中加载jQuery和其他依赖项。
这种技术的一个很好的例子描述了不必使用它来使jQuery正常工作(不一定是关于在页脚中使用):
http://encosia.com/dont-let-jquerys-document-ready-slow-you-down/
ready
如何解决这个问题(在FOOT位置脚本上)? - user166390live
和 ajax
,而不是依赖于 DOM。我会更新文章。 - philwinkleready
是一个事件,告诉浏览器在 dom 加载完成之后再运行脚本。如果它在 head 中,它将不会在整个 body 加载完成之前运行。 - Yamiko<footer>
位置的脚本,但同样适用:在这个时候DOM已经有了完整的创建机会(就它已被读取而言)。所有我所知道的现代浏览器都会确保这种序列化顺序和DOM可见性,尽管我不确定根据W3C的出版物/草案是否“定义良好”。 - user166390
ready
和帧的魔法……脚本仍应该位于body
标签内部。 - user166390<footer>
还是在<body>
末尾或其他什么? - user166390