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

标签 jquery ajax jquery-deferred

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

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

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

最佳答案

您可以使用 data() 将延迟对象与文档关联起来。 ,和resolve()它在您的 ready 处理程序中。这样,您应该能够使用 $.when() 存储的延迟对象:

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

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

关于jquery - 我可以在 document.ready() 上获得 jQuery Deferred 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6177187/

相关文章:

PHP搜索功能让我的网站崩溃

javascript - JQuery 完成时不停止执行

jquery-deferred - jQuery - 延迟等待一组 ajax 请求以完成甚至失败

javascript - 使用 JQuery 以编程方式单击页面上的 Flash 元素

jquery - 错误 'jquery-2.0.2.min.map not found'

jquery - 从 ajax post 在 django View 中创建多个对象

php - 如何使用ajax加载多个div mysql php检索数据

jQuery ajax done() 被多次调用

javascript - 绑定(bind)jquery slider 来改变div的内容?

javascript - 如何通过 ajax 动态加载 list.js 并使排序继续工作