我提出了this solution (jsfiddle) - 实现$.error
函数并更改了图片src
属性,但接缝时此函数并不总是被调用,有时我得到这个{{0}带有alt
文字的图片,而不是我提供的文字。我使用这个jquery代码来更新图像:
$(document).ready(function() {
$('img').error(function () {
var defaultSrc = $(this).data('default-src');
$(this).attr('src', defaultSrc);
});
});
还为每个图像提供了 data-default-src
属性。是否有一些更高级和某些 jquery 解决方案?
答案 0 :(得分:2)
我认为你会发现即使是$(document).ready
事件也可能为时已晚,无法将.error
处理程序附加到imgs上。在附加处理程序之前可能已经发生了错误事件。
作为一种变通方法,您可以确保在src
处理程序到位之后才设置图像.error
,例如,如下所示:
<强> HTML 强>
<img id="1" data-src="/bad/path/to/image" data-default-src="good/path/to/image" />
<强>的Javascript 强>
$(document).ready(function() {
$('img').on('error', function () {
this.src = $(this).data('default-src');
}).each(function() {
this.src = $(this).data('src');
});
});
<强> Demo 强>
答案 1 :(得分:0)
您可以使用.load()解决此问题:
$(this).load(defaultSrc);