为什么不$(元素).ready?

时间:2013-10-15 11:52:41

标签: javascript jquery jquery-plugins

以下代码可以使用

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

使用它有多好?背景会发生什么?

2 个答案:

答案 0 :(得分:4)

它的工作原理只是因为它忽略了div ID,并且默认为文档。

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

如果要在元素加载完成后执行函数,则应使用:

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

那只能用于......

  

与网址相关联的任何元素:图片,   脚本,框架,iframe和窗口对象。

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

请参阅http://api.jquery.com/load-event/

答案 1 :(得分:0)

手动says this

  

.ready()方法只能在与当前文档匹配的jQuery对象上调用,因此可以省略选择器。

如果我们查看method's source code,我们就会发现:

jQuery.fn.ready = function( fn ) {
    // Add the callback
    jQuery.ready.promise().done( fn );

    return this;
};

没有代码可以处理jQuery链或选择器,这表明它们只是被忽略了。

simple test显示选择器被忽略:

$("selector does not match anything").ready(function(){
    console.log("Event is triggered anyway");
});