动态地附加“恐怖”#39;事件到图像

时间:2014-04-24 15:30:04

标签: javascript jquery image

我有一个显示图像列表的页面。但是,这些图像中的一个或两个将根据用户搜索的内容而出错。理想情况下,我想在这些图像上附加一个onerror事件,这样我就可以显示另一张图像而不是坏图像。

但是,这些图像是使用sharepoint / lync库显示的,我无法控制它们的声明。当它们被声明时,我只是将函数传递给图片URL,就是这样。我无法指定一个onerror事件。

有没有办法将此事件动态附加到页面上创建的任何图像?

我正在思考这个问题。

        $("img").on('onerror', function ()
        {
            alert("test");
        });

然而,这种尝试是不成功的。我知道jquery有一个error()方法,但由于图像是在运行时创建的,所以这不起作用

        $("img").error(function ()
        {
            alert("test");
        });

2 个答案:

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