Javascript 图像加载失败时检测

Javascript 图像加载失败时检测,javascript,jquery,Javascript,Jquery,使用jquery,我需要在缺少图像时调用函数。我需要使用jquery,因为我要匹配包含特定路径的所有图像。在jquery中执行此操作更简单 我在网上找到了一个例子,但无法确定为什么它不起作用。任何帮助都将不胜感激 //尝试了这个,但没有成功 $(文档).on('error','img[src*=“/image/path/”]),function(){ 警报('error loading image'+$(this.attr('src')); }); //为了排除路径条件,我尝试了这个,但它也不

使用jquery,我需要在缺少图像时调用函数。我需要使用jquery,因为我要匹配包含特定路径的所有图像。在jquery中执行此操作更简单

我在网上找到了一个例子,但无法确定为什么它不起作用。任何帮助都将不胜感激

//尝试了这个,但没有成功
$(文档).on('error','img[src*=“/image/path/”]),function(){
警报('error loading image'+$(this.attr('src'));
});
//为了排除路径条件,我尝试了这个,但它也不起作用
$('body')。在('error','img',function()上{
警报('error loading image'+$(this.attr('src'));
});

问题的原因是
错误
事件没有冒泡,因此您尝试使用的委托事件处理程序不会从
文档中拾取事件

要解决此问题,您需要使用直接在
img
元素上定义的静态事件处理程序:

$('img[src*=“/image/path/”])。在('error',function()上{
log('error loading image'+$(this.attr('src'));
});

根据您的小提琴,这应该可以起作用:

$('img[src*="/image/path/"]').on('error', function() {
  alert('error loading image ' + $(this).attr('src'));
});

如果您觉得有必要这么做的话,您可以很聪明地监视DOM以获取附加的IMG标记,并确保随后添加事件处理程序(主体元素上的MutationObserver)。谢谢,但这在动态图像上会失败,不是吗?正如我最后一条评论指出的,这是正确的,并给出了一个解决方法。