从jQuery API文档站点获取ready
以下三种语法均等效:
- $(document).ready(处理程序)
- $()。ready(handler)(不建议这样做)
- $(处理程序)
做完作业-阅读并使用源代码后,我不知道为什么
$().ready(handler)
不推荐。第一种和第三种方法完全相同,第三个选项使用以下命令在缓存的jQuery对象上调用ready函数document
:
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;
},
如您所见,它只是将回调添加到内部queue(readyList
)中,而不更改或使用集合中的元素。这使您可以ready
在每个jQuery对象上调用该函数。
喜欢:
- 常规选择器:
$('a').ready(handler)
DEMO - 废话选择器:
$('fdhjhjkdafdsjkjriohfjdnfj').ready(handler)
DEMO - 未定义的选择器:
$().ready(handler)
DEMO
最后...对我的问题:为什么$().ready(handler)
不推荐?