如果图像未正确加载,如何显示默认图像?

时间:2015-04-06 04:49:46

标签: javascript jquery image

我提出了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 解决方案?

2 个答案:

答案 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);