jQuery error()函数在IE中不起作用

jQuery error() function not working in IE

本文关键字:IE 不起作用 函数 error jQuery      更新时间:2023-12-25

我想显示两个我不知道何时生成的图像。因此,我想使用jquery错误函数来不断检查图像是否存在,并显示每个图像。以下代码适用于除IE以外的所有浏览器。为什么它不适用于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似乎不知道图像是生成的

它是$(document).ready({})部分;在ie中为我抛出一个错误。将其更改为$(function(){});似乎对我有效,至少在ie中是这样。

缓存导致了此问题。将src更改为:

$(img).attr('src', src + "?" + (new Date().getTime()));