以下代码有效
$("#someid").ready(function(){});
使用它有多好?后台发生了什么?
它之所以起作用,只是因为它忽略了 div ID,并且默认为文档。
.ready()
用于告诉您 DOM 何时完成加载,即页面上的所有元素何时已加载。
如果你想在元素加载完成后执行一个函数,你应该使用:
$("#someid").load(function() {
// Do something here
});
那只能和...一起使用
与 URL 关联的任何元素:图像、脚本、框架、iframe 和窗口对象。
否则,("#someid").ready
将起作用,但仅在整个文档完成加载时才起作用。
手册是这样说的:
该
.ready()
方法只能在匹配当前文档的 jQuery 对象上调用,因此可以省略选择器。
如果我们查看该方法的源代码,我们会发现:
jQuery.fn.ready = function( fn ) {
// Add the callback
jQuery.ready.promise().done( fn );
return this;
};
没有处理 jQuery 链或选择器的代码,这表明它们被简单地忽略了。
一个简单的测试表明选择器被简单地忽略了:
$("selector does not match anything").ready(function(){
console.log("Event is triggered anyway");
});