2011-03-13 102 views
13
<img src="http://site.com/image.png" /> 

我在.click事件中更改此圖片的src。通過jQuery檢測圖片加載

在更換src後,可以載入20多幅不同的圖像。

1)我怎麼知道,圖像是否已經加載(應該被緩存)還是必須加載?

2)如何運行兩個不同的函數,用於加載而不是?

謝謝。

+0

也看到了這個問題:HTTP:/ /stackoverflow.com/questions/1948672/how-to-tell-if-an-image-is-loaded-or-cached-in-jquery – 2011-03-13 22:16:48

+0

[瀏覽器無關的方式可能的重複檢測圖像何時加載](https://stackoverflow.com/questions/821516/browser-independent-way-to-detect-when-image-has-been-loaded) – Liam 2017-06-26 09:25:45

回答

20

您需要附加的load event的事件處理程序:

更新2017年

$('img').on('load', function() { 
    alert('new image loaded: ' + this.src); 
}); 

平原JS/DOM:

imgNode.onload =() => { 
    alert('new image loaded: ' + this.src); 
}; 
+0

如何運行兩個不同的功能,用於加載和不? – James 2011-03-13 22:16:55

+0

@Happy:無論圖像是從服務器還是瀏覽器緩存中加載,都會觸發此事件。我不知道有可能區分兩者。 – jAndy 2011-03-13 22:19:01

+1

請注意,從jQuery 1.7起,.on()優於.bind() 其餘代碼是相同的:) – Spinal 2014-08-20 09:54:40