【发布时间】:2013-08-09 08:26:23
【问题描述】:
您好 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,它偶尔会匹配我的网络服务器上包含许多图像的图像。
【问题讨论】:
-
html中的图像无法返回一些错误。可能就是这样,url不存在。尝试检查jQuery中是否存在url。 -
显示 getImgUrl 函数。
-
问题来了,图像可能会以 404 或其他错误的形式返回错误。我遇到的问题本质上是在页面上删除一个元素并替换之后,即使我有一个 jQuery 函数在多个元素(例如所有图像)的范围内指定,jQuery 拒绝识别该元素存在.
标签: javascript jquery onerror