使用jQuery時,您在開始做東西之前等待DOM準備就緒。我的問題是與圖像。
有時圖像需要很長時間才能加載,而且通常不會。所以我想準備()基本上有一個超時。它會等待5秒鐘,如果這些選定的圖像沒有加載它將運行該功能。
這可能嗎?
使用jQuery時,您在開始做東西之前等待DOM準備就緒。我的問題是與圖像。
有時圖像需要很長時間才能加載,而且通常不會。所以我想準備()基本上有一個超時。它會等待5秒鐘,如果這些選定的圖像沒有加載它將運行該功能。
這可能嗎?
- 編輯:此答案不確定,只有幫助。
無視我。這是之後的圖片已加載。您想要在渲染後立即設置超時。在這種情況下,你會做些稍微不同的事情。在渲染每張圖片時,您會設置「啓動」超時,如果「加載」在5秒之前未取消,則啓動任何您想要執行的操作。
但是,可能存在的事件可能比可以以通用方式附加到的負載更早。不確定。
- 老:
事實上,先生,我認爲你應該能夠只連接到'IMG「負荷」事件。
可能是這樣的:
// not tested, completely made up
$("img").load({ alert("foo"); });
我想你可能已經confued的document.ready與在window.onload
的window.onload
這之後,將觸發一個事件頁面已完成加載。所以這個功能將不適合你,你將需要等待所有圖像已經下載完畢(或超時)
的document.ready
這是DOM後,將觸發一個事件準備好了。這是瀏覽器實際構建頁面的時候,但仍可能需要抓取幾張圖片或Flash文件。這個函數將會是你所追求的,因爲DOM已經準備好在所有的圖像被下載之前被處理。
你可以在這個函數中設置一個計時器,等待5秒鐘,並檢查您是否已經下載所述圖像
示例代碼:
<script>
$(document).ready(function() {
var imagesLoaded = false;
var imagesTimer = setTimeout("alert('images failed to load')", 10000);
$("img.checkme").load(function(){
imagesLoaded = true;
clearTimeout(imagesTimer);
alert('images loaded within 10 seconds')
});
});
</script>
我有一個jQuery plugin等待圖像在選擇器的上下文中下載,然後將觸發回調。
所以,你可以做...
$('body').waitForImages(function() {
// Images have loaded.
});
我會用window.onload事件清除超時。你想知道是否所有的圖像在超時之前完成加載,並且當所有的圖像加載完成後,window.onload會被觸發。 – 2009-10-12 07:44:36