捕获页面加载后创建的<img>标记的img加载错误(例如,通过AJAX)

nic*_*des 6 javascript ajax jquery events

我正在使用jQuery的error事件处理程序来捕获图像加载错误.它看起来像这样:

$(function(){
  $('img').error(function(){
    // ... do something
  })
})
Run Code Online (Sandbox Code Playgroud)

这对于加载页面时DOM中的图像非常有用.但是,我想抓住<img>通过AJAX插入的标签的错误.我希望在每次调用AJAX之后都不必运行某些代码.

我喜欢这样的东西,虽然这似乎不起作用:

$('body').on('error', 'img', function(){
  // ... do something
})
Run Code Online (Sandbox Code Playgroud)

Ami*_*haq 4

如果您不想在每次 ajax 调用后设置绑定,您可能需要在全局 ajax 完整函数中设置它

//Gloabal Ajax Complete
$("body").bind("ajaxSend", function(e, xhr, settings){
   //Sent
}).bind("ajaxComplete", function(e, xhr, settings){
   //Complete
   $('img').error(function(){
       // ... do something
   })
}).bind("ajaxError", function(e, xhr, settings, thrownError){
    //Error
});
Run Code Online (Sandbox Code Playgroud)