.ready()| jqueryAPI 2.2 中文手册- AspRain.cn 致力于Web开发技术翻译整理

jQuery API 2.2.0

.ready()

分类:事件 > 文档载入

返回: jQuery

.ready( handler )

描述:指定一个函数,当DOM完全加入的时候执行它。

加入于: 1.0
.ready( handler )
  • handler
    类型:Function()
    一个函数,在DOM就绪后执行它。

虽然JavaScript提供了load事件,用于在网页呈现完成之后执行代码,但是会直到网页上所有的资源,比如说图像,都已经完全收到之后,才会触发这个事件。在大多数情况下,这个脚本会在DOM层级结构完全构造完之后就会运行。传递给.ready()方法的处理函数,能保证在DOM就绪立后执行,因此这通常是附加所有其它事件处理函数、运行其它JavaScript代码的最合适的地方。如果运行脚本依赖于CSS样式属性值,则在引用脚本之前引用外部样式表文件或者嵌入<style>元素很重要。

万一代码依赖于载入的资源(举个例子,如果需要用一个图像的维度),则代码必须改放在load事件的处理函数中。

.ready()方法通常不兼容<body onload="">。如果必须使用load事件,要么不要使用.ready()方法,要么向window对象使用jQuery的.load()方法来附加load事件处理函数,或者向更多特定的项目,比如说图像,附加load事件处理函数。

下面三种句法是等同的:

  • $( document ).ready( handler )
  • $().ready( handler ) (this is not recommended)
  • $( handler )

还有一个$(document).on( "ready", handler ),自从jQuery 1.8版就被建议弃用了。这种行为近似于.ready()方法,但是如果ready事件已经被引发,而且你试图用.on( "ready" )来绑定处理函数,处理函数将不会被执行。以这种方式绑定的ready处理函数,会在上面三种方法绑定的函数执行完之后才执行它。

.ready()只能在匹配当前document的jQuery对象上调用,所以选择器可以省略掉。

.ready()方法通常与匿名函数协作。

$( document ).ready(function() {
  // Handler for .ready() called.
});

它等同于调用:

$(function() {
  // Handler for .ready() called.
});

如果.ready()在DOM已经初始化完成后调用,新传入的处理函数将立即执行。

给jQuery命名空间取别名。

如果还使用了别的JavaScript库,我们可以调用$.noConflict()以避免命名空间冲突。调用了这个函数,$这个简写就不再可用了,强迫我们把通常可以写成$的符号书写成jQuery。然而,传递给.ready()方法的处理函数可以取用一个参数,它会传入全局jQuery对象。这意味着我们可以在.ready()处理函数的上下文内重命名这个对象,而不影响别的代码:

jQuery( document ).ready(function( $ ) {
  // Code using $ as usual goes here.
});

示例

当DOM载入后,显示一条消息。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>ready demo</title>
  <style>
  p {
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.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>

演示结果

如果网页上不能运行示例,请点击http://www.asprain.cn/jQueryAPI/ready.htm查看示例。

如果你觉得本文档对你有用,欢迎给翻译作者支付宝打赏,支持翻译作者源源不断翻译更多有用的技术文档。