消除`ready`和`load`点火顺序中的歧义

时间:2018-01-29 17:48:49

标签: javascript jquery

据我所知,如果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之前),但我倾向于认为反之亦然。现在我什么都不懂。

1 个答案:

答案 0 :(得分:0)

如果您想100%确定,请将负载置于准备状态。

$(document).ready(function() {
    console.log('Ready comes first');
    $(window).on('load', function() {
        console.log('Onload comes second');
    });
});

这并没有完全回答为什么或如何在准备好之前发生负载,但它会解决您的问题,而不会使用任何棘手的问题或留下任何关于首先运行的问题。