下列三种语法均等同:
- $(document).ready(handler)
- $().ready(handler) (this is not recommended)
- $(handler)
做家庭作业后-阅读和玩弄
$().ready(handler)
不推荐。 第一条和第三条方法完全相同, 第三个选项使用 < code> document code> 来调用缓存的 jQuery 对象上的即时功能 :
rootjQuery = jQuery(document);
...
...
// HANDLE: $(function)
// Shortcut for document ready
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
但准备状态函数与选定节点元素( ready
源代码)的选择器没有交互作用:
ready: function( fn ) {
// Attach the listeners
jQuery.bindReady();
// Add the callback
readyList.add( fn );
return this;
},
如您所看到的, 它只是将回调添加到内部队列 ( < code> readyList ), 并且不会更改或使用集中元素。 这样您就可以在每个 jQuery 对象上调用 < code> ready code> 函数 。
类似 :
- regular selector:
$( a ).ready(handler)
DEMO - Nonsense selector:
$( fdhjhjkdafdsjkjriohfjdnfj ).ready(handler)
DEMO - Undefined selector:
$().ready(handler)
DEMO
最后... 最后我问: 为什么推荐 $ ()? ready( handler)
? strong>