从 JQuery API 文档站点到 ready
以下三种语法都是等价的:
- $(文档) . ready (处理程序)
- $() . ready (Handler)(不推荐这样做)
- $(处理器)
在做完家庭作业——读书和玩 源代码之后,我不知道为什么
$().ready(handler)
不建议。第一种和第三种方法完全相同,第三种方法使用 document
调用缓存的 jQuery 对象上的 ready 函数:
rootjQuery = jQuery(document);
...
...
// HANDLE: $(function)
// Shortcut for document ready
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
但是 ready 函数与选定节点元素的选择器 ready
源代码没有交互:
ready: function( fn ) {
// Attach the listeners
jQuery.bindReady();
// Add the callback
readyList.add( fn );
return this;
},
正如您所看到的,它只是将回调添加到内部队列(readyList
) ,并且不更改或使用集合中的元素。这使您可以在每个 jQuery 对象上调用 ready
函数。
比如:
$('a').ready(handler)
< a href = “ http://jsfiddle.net/w5k5t/1/”> DEMO$('fdhjhjkdafdsjkjriohfjdnfj').ready(handler)
$().ready(handler)
< a href = “ http://jsfiddle.net/w5k5t/3/”> DEMO最后... 回到我的问题: 为什么不推荐 $().ready(handler)
?