我的问题很简单。

我有一些配置和加载,需要在document.ready()调用之前完成。

// initialize ASAP so it loads super fast
soundManager.setup({
    url: 'swf/',
    onready: SMOnReadyHandler
});

例如,此onready事件处理程序可能要花很长时间才能完成。

在此之后,我想调用document.ready()事件侦听器以加载页面的其余部分,如下所示:
$(document).ready(function() {
    // code here might be dependent on the completion of
    // soundManager.onready event handler
});

如何确保$(document).ready处理程序完全完成后才出现soundManager.onready

在此先多谢!

最佳答案

您可以使用deferred:

var soundManagerDeferred = $.Deferred();

soundManager.setup({
    url: 'swf/',
    onready: SMOnReadyHandler
});

function SMOnReadyHandler() {
    soundManagerDeferred.resolve();
}

$(document).ready(function() {
    soundManagerDeferred.done(function() {
        //init
    });
});

07-24 17:17