.ready( handler )返回: jQuery
描述: 当DOM准备就绪时,指定一个函数来执行。
.ready()方法提供了一种方法,使得一旦页面的文档对象模型(DOM)变为安全的操纵,就立即运行JavaScript代码。这往往是执行与页面的用户视图或交互之前需要任务的好时机,例如添加事件处理程序和初始化插件。当多个函数通过连续调用添加到该方法中,它们根据它们被添加的DOM准备就绪的顺序执行。在jQuery 3.0中,jQuery保证了在一个处理程序中的异常发生,不会妨碍后续添加的处理程序的执行。
大多数浏览器提供了 DOMContentLoaded 事件形式的类似功能。
然而,jQuery的 .ready() 方法的不同之处在于它是一个重要并且有效的方法:在代码调用.ready( handler )之前,如果 DOM 已经准备就绪并且浏览器已经触发DOMContentLoaded,handler处理函数仍然会被执行。 相反,如果 DOMContentLoaded 事件侦听器在这个事件触发后才被添加进来,那么这个DOMContentLoaded 事件的处理程序将永远不会被执行。
浏览器还提供了 window 对象上的load事件。当这个事件触发时候,表明该网页上的所有资源已加载,包括图像。此事件可以使用jQuery的$( window ).on( "load", handler )监听。当代码依赖加载的资源情况下,(例如,必需知道图像的尺寸时),那么代码应放置在一个 load事件的处理程序中。
值得注意的是,虽然 DOM 准备就绪(ready)总是在页面被完全加载之前,但是在已经生效执行的 .ready() 处理程序代码中绑定load事件侦听器,通常是不安全的。例如,在页面加载后,可以使用一些方法动态加载脚本,如$.getScript() 。虽然动态加载的脚本中的 .ready() 处理程序始终会被执行,
但是在动态加载脚本中的 window 的 load 事件已经触发过了,所以那些load 事件监听器将永远不会运行。
jQuery提供了几种方法来绑定函数,当DOM已准备就绪时,绑定的函数将会运行。以下所有语法是等价的:
$( handler )$( document ).ready( handler )$( "document" ).ready( handler )$( "img" ).ready( handler )$().ready( handler )
在jQuery 3.0 中,只建议使用第一种语法(注:即 $( handler ));
其他语法仍然能正常工作,但已被标记为弃用(注:将来的某个版本会被删除)。这是因为,这些选择器跟.ready()方法的行为没有任何关系,这是低效的,并可能导致对该方法行为不正确的假设。例如,第三条语法中,"document"选择器其实什么也没选择。第四语法表示等待文档( document )准备就绪,但从代码上看,它暗示(错误地)等待图像("img")准备就绪。 
还有 $(document).on( "ready", handler ),从jQuery 1.8开始已被标记为弃用,在jQuery 3.0中已经被删除。请注意,如果附加此事件之前,DOM 已经准备就绪,该处理程序将不被执行。
.ready() 方法通常用于一个匿名函数:
| 
					
						 1 
					
						2 
					
						3 
					
				 | 
				
				
					
  | 
			
这等价于调用推荐的方式:
| 
					
						 1 
					
						2 
					
						3 
					
				 | 
				
				
					
  | 
			
在 jQuery 对象别名 上使用
当$快捷方式不再可用时,$.noConflict()可以用于避免命名空间冲突。然而,传递给.ready() 的处理函数可以传递一个引用jQuery对象的参数。这使得处理程序中能够使用jQuery对象,例如,用作$,这样就可以不用关心它的别名:
| 
					
						 1 
					
						2 
					
						3 
					
						4 
					
				 | 
				
				
					
  | 
			
例子:
显示当DOM加载的信息。
| 
          
             1 
          
            2 
          
            3 
          
            4 
          
            5 
          
            6 
          
            7 
          
            8 
          
            9 
          
            10 
          
            11 
          
            12 
          
            13 
          
            14 
          
            15 
          
            16 
          
            17 
          
         | 
        
          
  |