小编典典

我可以在document.ready()上获得jQuery Deferred吗?

ajax

加载脚本后,我立即发出Ajax请求以获取一些翻译。自从我在页面底部加载脚本以来,这应该总是在文档准备好之后返回,但是我仍然好奇是否有可能在文档准备就绪状态下获得Deferred
Object

这样,可以在执行其他任何操作之前确保文档都准备就绪并且Ajax调用成功返回,例如:

$.when( $.ajax('translations'), document.ready())
.then(function(){
    // Start doing stuff here
});

阅读 251

收藏
2020-07-26

共1个答案

小编典典

您可以使用data()将延迟的对象与文档相关联,然后在处理程序中将它解决()ready。这样,您应该可以将存储的延迟对象与$
.when()一起使用

$(document).data("readyDeferred", $.Deferred()).ready(function() {
    $(document).data("readyDeferred").resolve();
});

$.when($.ajax("translations"), $(document).data("readyDeferred"))
 .then(function() {
    // Start doing stuff here.
});
2020-07-26