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

Javascript jQuery-$(window.load vs$(window.prop)(';complete';),javascript,jquery,Javascript,Jquery,在调用Modernizer之后,我正在使用jQuery编程。 Modernizer使用AJAX加载JavaScript和CSS代码 调用的代码不适用于 $(window).load(function(){ // Some code }); 与其他选择器相同,如$('img')、$('object')等 但可与以下各项一起使用: $(window).prop('complete',function(){ // Some code }); 和其他选择器 在没有Modernizer,

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

调用的代码不适用于

$(window).load(function(){
    // Some code
});
与其他选择器相同,如$('img')、$('object')等

但可与以下各项一起使用:

$(window).prop('complete',function(){
   // Some code
});
和其他选择器

在没有Modernizer,$(window).prop('complete')的情况下测试两个代码

他们之间有什么区别


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

这些函数的作用完全不同

load
在页面加载完成时触发回调函数。这意味着它是异步的;i、 e.后续行中的代码可能会在回调运行之前出现

prop
做了一些完全不同的事情。它是一种动态设置元素属性的方法。通常用于元素集。例如,这将反转所有
单选按钮上的所有
选中的
属性:

$('input[type="radio"]').prop('checked', function(i, oldProp) {
    return !oldProp;
});
此代码是同步的。也就是说,所有这些都是立即运行的;在所有回调发生之前,后续代码行不会运行

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

window.complete = '...';

它甚至不能远程执行与
$(window.load()
相同的操作。它适用于设置
窗口
对象的属性,但根据我的经验,这在任何时候都不可能有用。

窗口。complete
通常是对旧IE的一种攻击,旧IE在缓存内容时不总是触发
onload
事件。此外,当前窗口只加载一次,如果您使用ajax加载内容,它将不会再次启动。最重要的是,您的
prop()
函数只是一个用于设置值的回调函数,它与任何与窗口加载相关的事情都无关。