2

以下代码有效

$("#someid").ready(function(){});

使用它有多好?后台发生了什么?

4

2 回答 2

4

它之所以起作用,只是因为它忽略了 div ID,并且默认为文档。

.ready()用于告诉您 DOM 何时完成加载,即页面上的所有元素何时已加载。

如果你想在元素加载完成后执行一个函数,你应该使用:

$("#someid").load(function() {
  // Do something here
});

那只能和...一起使用

与 URL 关联的任何元素:图像、脚本、框架、iframe 和窗口对象。

否则,("#someid").ready将起作用,但仅在整个文档完成加载时才起作用。

http://api.jquery.com/load-event/

于 2013-10-15T11:58:20.143 回答
0

手册是这样说的

.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");
});
于 2013-10-15T12:06:15.703 回答