你好 Stack Overflow 社区,最近,我一直在使用 jQuery 进行快速图像显示。它有一个可以随机选择和显示的可能图像列表。问题是,在页面完成加载后,如果图像无效,jQuery 将停止检测图像加载错误。
我目前查找和修复错误的方法如下:
$('img').error(function() {
$(this).attr('src',getImgUrl());
});
这在正常情况下(例如正在加载的页面)会选择一个有效的图像,即使在一行中指定了多个无效图像。但是,在页面加载完成后,如果选择了无效图像,并且加载失败,则甚至不会调用此函数。奇怪的是,如果我为所有图像添加一个 onerror 属性,无论页面是否新加载,它们总是从 onerror 中调用,那么为什么 jQuery 会出现这个问题呢?任何帮助表示赞赏,谢谢。
更新:这似乎也发生在其他 jQuery 函数上,例如 click。
更新:jQuery 识别页面上的新元素(例如新创建的图像)似乎是一个问题。
更新那些询问 getImageUrl 的人:
function getImgUrl()
{
var text = (Math.round(Math.random() * 3)).toString();
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for(var i=0; i < 4; i++ )
text += possible.charAt(Math.floor(Math.random() * possible.length));
return '/' + text;
}
所有这一切都是选择一个随机 URL,它偶尔会与我的网络服务器上包含许多图像的图像匹配。