我有一个显示图像列表的页面。但是,这些图像中的一个或两个将根据用户搜索的内容而出错。理想情况下,我想在这些图像上附加一个onerror事件,这样我就可以显示另一张图像而不是坏图像。
但是,这些图像是使用sharepoint / lync库显示的,我无法控制它们的声明。当它们被声明时,我只是将函数传递给图片URL,就是这样。我无法指定一个onerror事件。
有没有办法将此事件动态附加到页面上创建的任何图像?
我正在思考这个问题。
$("img").on('onerror', function ()
{
alert("test");
});
然而,这种尝试是不成功的。我知道jquery有一个error()方法,但由于图像是在运行时创建的,所以这不起作用
$("img").error(function ()
{
alert("test");
});
答案 0 :(得分:1)
由于图像是在运行时创建的,use event delegation:
$(document).on("error", "img", (function (){
alert("test");
});
答案 1 :(得分:0)
尝试迭代图像并加载。如果它们不存在,请替换。
$.each($('img'), function(){
var test = new Image();
$(test).load(function () {
//if error, load alternate
});
test.src = $(this).src;
});