Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态附加';onerror';事件到图像_Javascript_Jquery_Image - Fatal编程技术网

Javascript 动态附加';onerror';事件到图像

Javascript 动态附加';onerror';事件到图像,javascript,jquery,image,Javascript,Jquery,Image,我有一个显示图像列表的页面。但是,根据用户搜索的内容,其中一个或两个图像将出错。理想情况下,我希望将onerror事件附加到这些图像上,以便可以显示另一个图像,而不是坏图像 但是,这些图像是使用sharepoint/lync库显示的,我无法控制它们的声明。当它们被声明时,我只是向函数传递一个图片URL,就这样。我无法指定onerror事件 有没有办法将此事件动态附加到页面上创建的任何图像 我在想类似的事情 $("img").on('onerror', function ()

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

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

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

我在想类似的事情

        $("img").on('onerror', function ()
        {
            alert("test");
        });
然而,这一尝试没有成功。我知道jquery有一个error()方法,但这不起作用,因为图像是在运行时创建的

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

由于图像是在运行时创建的,因此:


尝试在图像上迭代并加载。如果它们不存在,请替换

$.each($('img'), function(){
    var test = new Image();
    $(test).load(function () {
        //if error, load alternate
    });
    test.src = $(this).src;
});

您尝试过.on(“error”,function(){})吗?是的。似乎不太管用,这相当于他的上一个代码。问题是图像是动态添加的,因此他需要使用事件委派。但我不确定这是否适用于图像,因为它们不会冒泡。看起来很有希望。虽然我很难达到预期的效果。请查看您可以使用的小提琴-它只需将
onerror
属性设置为
alert(“test”)
,您甚至可以调用函数或执行任何您想要的操作,例如完全删除图像-
$.each($('img'), function(){
    var test = new Image();
    $(test).load(function () {
        //if error, load alternate
    });
    test.src = $(this).src;
});