我正在使用带有 jQuery 库的 JavaScript 来操作包含在无序列表中的图像缩略图。加载图像时,它会做一件事,当发生错误时,它会做另一件事。我使用 jQueryload()和error()方法作为事件。 在这些事件之后,我检查 .complete 的图像 DOM 元素,以确保在 jQuery 注册事件之前图像尚未加载。
load()
error()
它可以正常工作,除非在 jQuery 注册事件之前发生错误。 我能想到的唯一解决方案是使用 imgonerror属性在全局某处(或它自身的节点上)存储一个“标志”,表示它失败了,因此 jQuery 可以在检查 .complete 时检查该“存储/节点”。
onerror
有人有更好的解决方案吗?
编辑:加粗的要点并在下面添加了额外的细节: 我在图像上添加加载和错误事件后检查图像是否完整(也称为加载)。这样, 如果图像是在事件注册之前加载的,我仍然会知道。 如果在事件之后没有加载图像,那么事件将在它加载时处理它。这样做的问题是,我可以轻松检查是否已经加载了图像,但 我无法判断是否发生了错误。
另一种选择是通过创建内存图像元素并将其属性设置为原始图像的原始属性来触发onload和/或事件。这是我的意思的一个例子:onerror``src``src
onload
onerror``src``src
$("<img/>") .on('load', function() { console.log("image loaded correctly"); }) .on('error', function() { console.log("error loading image"); }) .attr("src", $(originalImage).attr("src")) ;
希望这可以帮助!