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