jquery - 如何使用 jQuery 隐藏 IE 中损坏的图像?

标签 jquery image error-handling

我尝试过从 jQuery 站点复制的这段代码,但它在 IE7/IE8 中失败,但在其他浏览器中有效。这段代码有什么问题,它来自 jQuery 站点(http://api.jquery.com/error/)。我使用的是 jQuery 版本 1.4.4。

$(document).ready(function(){ 
  $("img").error(function(){
    $(this).hide();     
  });    
});

最佳答案

问题是,当执行 $(document.ready) 时,图像已经完成加载,因此不会再触发加载/错误事件。

我能想到的绕过这个问题的唯一方法是重新加载图像,从而“强制”触发事件:

$(document).ready(function(){ 
    $("img").each(function(index) {
        $(this).error(function() {
            $(this).hide();     
        });
        $(this).attr("src", $(this).attr("src"));
  });    
});

性能应该不会太差,因为图像很可能是从缓存中获取的,而不是真正从服务器重新加载的。

现场测试用例(有酷猫;))可以在这里找到: http://jsfiddle.net/yahavbr/QvnBC/1/

关于jquery - 如何使用 jQuery 隐藏 IE 中损坏的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4582397/

相关文章:

javascript - 使用 jQuery 替换 div 内容

jquery - 如何正确地将 Bootstrap 文件实现为 html?

jquery - 选择一个元素时禁用其他组

python - 错误类型-消息: unknown error

javascript - 为什么在我尝试打印网页时,广告内容没有在每个打印页面中重复出现?

javascript - 在图像加载之前不要解决 promise

javascript - 根据 base 64 内容确定图像类型

ios - 在 iOS 中将一个图像覆盖在另一个图像上

android - Flutter : RangeError (index) when building a Row inside a listView

python - 即使我确定间距,为什么也会出现这种缩进错误?