我想顯示兩張圖片,我不知道它們何時會生成。所以我想使用jQuery的錯誤函數來檢查圖像是否存在,並顯示每個。以下代碼適用於除IE以外的所有瀏覽器。爲什麼它不適用於IE瀏覽器,真的很感謝你的幫助。jQuery錯誤()函數在IE中不工作
<style type="text/css">
DIV#loader {
width: 500px;
height: 500px;
overflow: hidden;
}
DIV#loader.loading {
background: url(spinner.gif) no-repeat center center;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
var image_names = new Array(2);
image_names[0] = 'a.jpg';
image_names[1] = 'b.jpg';
var divs = document.getElementsByTagName("div");
for (var i = 0; i < divs.length; i++) {
showImage(image_names[i], divs[i]);
}
});
function showImage(src, div) {
var img = new Image();
$(img).load(function() {
$(this).hide();
$(div).removeClass('loading').append(this);
$(this).fadeIn();
}).error(function() {
setTimeout(function() {
$(img).attr('src', src);
}, 2000);
}).attr('src', src);
}
</script>
這是HTML身體
<body>
<h1>Image Loading</h1>
<div id="loader" class="loading"></div>
<div id="loader" class="loading"></div>
</body>
好像IE不知道生成圖像,如果不存在,當第一次加載頁面
當您在IE中使用腳本調試器時,哪行代碼顯示錯誤? – 2012-07-23 00:17:46
Id應該是獨一無二的'loader'與多個元素一起使用。 – 2012-07-23 00:22:47
只需檢查,嘗試調用'$(img).attr('src',src);'沒有setTimeout。 – 2012-07-23 00:30:08