我在调用 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/