我正在尝试触发img.onerror事件,但似乎无法弄清楚为什么我的代码的最后一行没有运行。当我启动调试器时,它会到达错误事件绑定到图像的行,但它永远不会到达带有this.src的行。
$("img").each(function () {
this.error(function () {
alert("error!");
})
this.src = "data:image;base64,invalidDatalFTkSuQmCC";
});
答案 0 :(得分:2)
你必须包装this
以使其成为jQuery对象:
$(this).error....
控制台也是你的朋友,你会看到你得到的当前代码:
Uncaught TypeError: Object #<HTMLImageElement> has no method 'error'
答案 1 :(得分:1)
each
回调函数this
内是对img
DOM节点(HTMLImageElement
)的引用。它不是不是一个jQuery集合。使用,$(this).error(...)
应解决问题。
由于您似乎将类似的回调绑定到每个error
事件,并设置了相同的src
属性,因此您可以将代码简化为:
$('img').error(function () {
alert('error');
}).prop('src', 'data:image;base64,invalidDatalFTkSuQmCC');