我尝试过从 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/