簡體   English   中英

在繼續使用document.ready代碼之前等待第一個事件完成

[英]waiting for first event to finish before continuing with document.ready code

我的問題很簡單。

我有一些配置和加載需要在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
    });
});

你不能,因為瀏覽器是誰確定DOM准備好的時候。 我的建議是,簡單地刪除您的document.ready處理程序,並通過您啟動功能,聲音管理器的onready 我的意思是,替換這個:

$(document).ready(function() { 
    // do init stuff 
});

有了這個:

function initStuff() {
    // do init stuff 
}
soundManager.setup({
    url: 'swf/',
    onready: initStuff
});

為了確保您沒有引用任何不在DOM中的元素,請在</body>之前將代碼添加到html的末尾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM