(document).ready() 和(window).load() 之間的區別
$(window).load()
在 jQuery 版本 1.8 中 被棄用(並且完全從 jQuery 3.0 中 刪除 ) ,因此不應該再使用了。關於此事件的 jQuery 頁面上註明了棄用的原因
與影象一起使用時載入事件的注意事項
開發人員嘗試使用
.load()
快捷方式解決的常見挑戰是在影象(或影象集合)完全載入時執行功能。應該注意有幾個已知的警告。這些是:
- 它不能一致地工作,也不能可靠地跨瀏覽器
- 如果影象
src
設定為與之前相同的src
,則在 WebKit 中無法正確觸發- 它沒有正確地冒泡 DOM 樹
- 可以停止為已經存在於瀏覽器快取中的影象觸發
如果你仍然希望使用 load()
,請記錄如下:
$(document).ready()
等待直到完整的 DOM 可用 - HTML 中的所有元素都已經過解析並且在文件中。但是,此時影象等資源可能尚未完全載入。如果等到所有資源都被載入很重要**,那麼你知道這個事件的重大限制,**那麼可以使用下面的程式碼:
$(document).ready(function() {
console.log($("#my_large_image").height()); // may be 0 because the image isn't available
});
$(window).load(function() {
console.log($("#my_large_image").height()); // will be correct
});