据我所知,如果ready
事件发生得足够快,jQuery load
处理程序有时会在<{em> load
事件后触发。
我试图解决这种歧义。因此,我希望确保在所有情况下ready
首先触发,load
秒触发。
这是我的尝试:
$(document).ready(function() {
console.log('Ready comes first');
});
$(window).on('load', function() {
$.ready.then(function() {
console.log('Onload comes second');
});
});
这是对的吗?可能我错过了什么?
编辑现在Royi Namir说load
几乎每次都会先命中(即ready
之前),但我倾向于认为反之亦然。现在我什么都不懂。
答案 0 :(得分:0)
如果您想100%确定,请将负载置于准备状态。
$(document).ready(function() {
console.log('Ready comes first');
$(window).on('load', function() {
console.log('Onload comes second');
});
});
这并没有完全回答为什么或如何在准备好之前发生负载,但它会解决您的问题,而不会使用任何棘手的问题或留下任何关于首先运行的问题。