javascript - jQuery - $(window).load 与 $(window).prop ('complete' )

标签 javascript jquery

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

调用的代码不适用于

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

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

但适用于:

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

和其他选择器...

在没有 Modernizr 的情况下测试这两个代码,$(window).prop('complete') 先触发

它们有什么区别?

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

最佳答案

这些函数做完全不同的事情。

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

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

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

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

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

window.complete = '...';

它甚至不会远程执行与 $(window).load() 相同的操作。它适用于在 window 对象上设置属性,但根据我的经验,没有想象中的时间有用。

关于javascript - jQuery - $(window).load 与 $(window).prop ('complete' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31700206/

相关文章:

javascript - 使用复选框隐藏/显示具有特定类的表行

jquery - 如何在顶部和侧面标签正确滚动的情况下水平和垂直滚动 html 元素

带图标的 jQuery 按钮,有没有更好的方法来重写它

jquery 选择器查找子元素

javascript - 如何使 Chrome 扩展弹出窗口可拖动?

javascript - bootstrap formvalidation.io 远程验证器 MySQL PHP

JQuery 缩略图悬停突出显示(隐藏其他缩略图)

javascript - Onclick JavaScript 函数

javascript - 如何在本地 javascript 文件中使用来自 CDN 的对象?

javascript - 无法在缩略图中显示来自 ajax 请求的数据