[英]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.