2015-04-06 77 views
1

我想出了this solution (jsfiddle) - 执行$.error功能和更改图像src属性,但接缝,该功能并不总是被称为,有时我得到这default image图像与alt文字,而不是我提供的一个。我用这个jQuery代码更新映像:还提供了用于每个图像如果图像未正确加载,如何显示默认图像?

$(document).ready(function() { 
    $('img').error(function() { 
     var defaultSrc = $(this).data('default-src'); 
     $(this).attr('src', defaultSrc); 
    }); 
}); 

data-default-src属性。有没有更高级的和某些jquery解决方案?

+0

这可能会帮助您http://stackoverflow.com/a/93017/3639582。 – 2015-04-06 05:07:02

+0

@ShaunakD,它更好,但现在默认图像经常显示,原始图像在页面刷新后显示,但... – Dmytro 2015-04-06 05:30:27

+0

@RohitArora'img'选择器意味着选择页面 – Dmytro 2015-04-06 05:31:15

回答

0

您可以使用.load()这个问题:

$(this).load(defaultSrc); 
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