jQuery ready, 是否总是必需?

3

类似的问题 - xkeshav
6个回答

5

只有在保证操作有效且具有良好定义行为时,才应该操作DOM。

延迟执行直到“文档准备就绪事件”(jQuery.ready)确保DOM已“完成”。但是,根据浏览器和上下文,很可能不需要这样做——这不是我喜欢打赌的事情(它还涉及更多思考,并使代码更依赖于HTML/代码顺序)。

愉快的编码。


1

JQuery文档显示如下:

下面的三种语法都是等价的:

• $(document).ready(handler)

• $().ready(handler) (不推荐使用)

• $(handler)

任何以$(handler)开头的JQuery代码都会在DOM准备好时执行,您不需要担心"准备好"这一点。

来源: http://api.jquery.com/ready/


0

您不需要使用文档就绪。将您的jQuery放置在</body>标签之前,将其他jQuery脚本和插件放置在您的jQuery之后。

<script src="jquery.js"></script>
<script src="other.js"></script>
<script>
  $('div').click.....
</script>
</body>

关于这个问题有一篇很棒的文章 "不要让文档准备拖慢你的速度"


0

根据你所处理的元素,你有很多可能性。如果只是为了导航栏或模块,你可以选择不同的DOM元素。

/* for a menu */
$('.menu').ready(function() {...})

/* for the all page */
$(docuement).ready(function() {...})

但你也可以将jQuery文件和脚本包含在页面末尾。

<script src="jquery.js"></script>
<script>
  $('.menu').click(function() {...})
</script>

0

0

阅读this

.ready()方法通常与属性不兼容。如果必须使用load,请不要使用.ready()或使用jQuery的.load()方法将load事件处理程序附加到窗口或更具体的项目,如图像。

您可以在Google或SO上搜索类似的答案


也可以阅读这篇学习jQuery的文章。 - xkeshav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接