2015-04-06 52 views
1

我想出了this solution (jsfiddle) - 執行$.error功能和更改圖像src屬性,但接縫,該功能並不總是被稱爲,有時我得到這default image圖像與alt文字,而不是我提供的一個。我用這個jQuery代碼更新映像:還提供了用於每個圖像如果圖像未正確加載,如何顯示默認圖像?

$(document).ready(function() { 
    $('img').error(function() { 
     var defaultSrc = $(this).data('default-src'); 
     $(this).attr('src', defaultSrc); 
    }); 
}); 

data-default-src屬性。有沒有更高級的和某些jquery解決方案?

+0

這可能會幫助您http://stackoverflow.com/a/93017/3639582。 – 2015-04-06 05:07:02

+0

@ShaunakD,它更好,但現在默認圖像經常顯示,原始圖像在頁面刷新後顯示,但... – Dmytro 2015-04-06 05:30:27

+0

@RohitArora'img'選擇器意味着選擇頁面 – Dmytro 2015-04-06 05:31:15

回答

0

您可以使用.load()這個問題:

$(this).load(defaultSrc); 
2

我想你會發現,即使是$(document).ready事件可以是來不及了.error處理器連接到IMGS。在附加處理程序之前,錯誤事件可能已經發生。

作爲一種變通方法,可以確保圖像的src未設置之後才.error處理很到位,例如,像這樣:

HTML

<img id="1" data-src="/bad/path/to/image" data-default-src="good/path/to/image" /> 

的Javascript

$(document).ready(function() { 
    $('img').on('error', function() { 
     this.src = $(this).data('default-src'); 
    }).each(function() { 
     this.src = $(this).data('src'); 
    }); 
}); 

Demo

相關問題