2010-10-26 71 views
2

我仔細閱讀了問題'Official way to ask jQuery wait for all images to load before executing something',但IE讓我很難。

我想在背景圖片加載後淡入一些圖片,所以感謝您的解釋,在FF,Safari和Chrome上一切正常。但它似乎並沒有在IE瀏覽器上工作。試用了兩臺不同的電腦,IE 8(8.0.7)。

有人可以告訴我這個嗎?我的網站是http://www.laforcemajeure.nl

這是我的代碼,這是對我的script.js文件的底部:

$(window).load(
    function() { 
     $("#allbirds").fadeIn(2000); 
    } 
); 
+1

究竟發生了什麼或沒有發生什麼?事件是否被觸發? (使用'alert()'確定。) – 2010-10-26 11:33:54

+1

您確定在頁面中只有一個ID爲「allbirds」的元素嗎? IE瀏覽器比其他瀏覽器更傾向於獨特的ID。 – 2010-10-26 11:34:38

+0

我只有一個allbirds div,當然。 – 2010-10-26 12:25:28

回答

8

你安裝你的window.onload功能一個document.ready處理程序,而不是外部的移動它。 onload火災一旦,如果你綁定後發生,你只是運氣不好,這似乎是你的情況發生了什麼。

不同的瀏覽器對ready事件的jQuery的時間略有不同的行爲,作爲後備it'll use window.onload itself這意味着如果發生這種情況,你要綁定到處理器內部的事件,一切都太遲了......事件都有已經開除了。

經驗法則:保留您的$(window).load()處理程序外部您的$(document).ready()處理程序。

+0

感謝您的解釋,這是有道理的。我改變了它,並移動$(document).ready()處理程序下的$(window).load()部分。儘管我沒有取得好成績。 IE仍然沒有效果(我刪除了歷史記錄),Safari Mac現在快速顯示了div,然後正確地將其淡入淡出。 – 2010-10-26 12:20:51

+0

嗨,尼克,除了把$(window).load()放在doc.ready下面,我也改變了選擇器。而不是div #allbirds(這是鳥類的容器),我現在選擇類.bird,分別選擇每隻鳥。現在它完美地工作!感謝偉大的建議,我的網站的第一印象現在好多了。 – 2010-10-26 12:39:53