jQuery - $(window).load vs $(window).prop(' complete')

时间:2015-07-29 12:18:18

标签: javascript jquery complete

我在Modernizr调用之后用jQuery编程。 Modernizr使用AJAX加载JavaScript和CSS代码。

被叫代码无法使用

$(window).load(function(){
    // Some code
});

与其他选择器相同,例如$(' img'),$(' object')等......

但适用于:

$(window).prop('complete',function(){
   // Some code
});

和其他选择者......

在没有Modernizr的情况下测试两个代码,$(窗口).prop('完成')首先开火

他们之间的区别是什么?

为什么每个人都使用$(window).load而不是$(window).prop(' complete')?

1 个答案:

答案 0 :(得分:3)

这些功能完全不同。

load在页面加载完成后触发回调函数。这意味着它是异步;即后续行上的代码可能会在回调运行之前发生。

prop做了一些完全不同的事情。它是一种以动态方式在元素上设置属性的方法。通常它用在元素集上。例如,这会反转所有checked按钮上的所有radio属性:

$('input[type="radio"]').prop('checked', function(i, oldProp) {
    return !oldProp;
});

此代码为同步。这意味着它全部立即运行;在所有回调发生之前,后续的代码行都不会运行。

所以$(window).prop('complete', function() {...});是非常奇怪的语法。它与此基本相同:

window.complete = '...';

它甚至没有与$(window).load()远程做同样的事情。它适用于在window对象上设置属性,但根据我的经验,这对于有用的时间是不可想象的。