.ready()
.ready( handler ) 返回: jQuery
描述: 当DOM完全加载完成时,指定一个函数来执行。
-
version added: 1.0.ready( handler )
handler当DOM完全加载完成时,执行一个函数。
虽然JavaScript提供了load
事件,当页面执呈现时用来执行这个事件,直到所有的东西,如图像已被完全接收前,此事件不会被触发。在大多数情况下,只要DOM结构已完全加载脚本就可以运行。传递给处理函数给.ready()
能保证DOM准备好后就执行这个函数,所以附加所有其他的事件处理程序和运行其它jQuery代码,这个方法通常是最好的地方。当使用脚本依赖CSS样式属性值的时候,重要的是要引用外部样式或引用样式元素防止在脚本之前。
如遇到有代码依赖于加载元素(例如,如果一个图像的尺寸为必须项),代码应该被放置在该处理函数中,用来替换load
事件。
.ready()
方法通常是不符合<body onload="">
属性。如果load
必须使用,要么不使用.ready()
,要么使用jQuery的.load()
方法来附加load
事件处理函数到window或更多的具体对象,比如图片。
以下三个语法全部是等价的:
$(document).ready(handler)
-
$().ready(handler)
(this is not recommended) $(handler)
还有$(document).bind("ready", handler)
。此行为类似于 ready 方法,但有一个例外:如果ready 事件已准备触发,你再尝试用.bind("ready")
绑定处理函数将不会被执行。
.ready()
方法只能在一个jQuery对象匹配的当前文档上调用。所以选择可以省略。
.ready()
方法通常用于一个匿名函数:
$(document).ready(function() { // Handler for .ready() called. });
如果.ready()
在DOM被初始化后被调用,新的处理函数通过将立即执行。
Aliasing the jQuery Namespace
当使用其他JavaScript库时,我们不妨调用$.noConflict()
以避免命名空间中的混淆。当这个函数被调用,$
快捷方式将不再可用,迫使我们每次将写$
的时候写jQuery
代替 。然而,处理函数传递给.ready()
方法可以带一个参数,这个参数就是全局的jQuery
对象。这意味着我们可以重新命名上下文对象内的.ready()
处理函数,而不影响其他代码:
jQuery(document).ready(function($) { // Code using $ as usual goes here. });
Example:
显示当DOM加载的信息。
<!DOCTYPE html>
<html>
<head>
<style>p { color:red; }</style>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function () {
$("p").text("The DOM is now loaded and can be manipulated.");
});
</script>
</head>
<body>
<p>Not loaded yet.</p>
</body>
</html>