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

时间:2012-03-15 04:56:58

标签: javascript jquery ajax events

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

$(function(){
  $('img').error(function(){
    // ... do something
  })
})

这适用于加载页面时DOM中的图像。但是,我想捕获通过AJAX插入的<img>标记的错误。我希望在每次调用AJAX之后都不必运行某些代码。

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

$('body').on('error', 'img', function(){
  // ... do something
})

2 个答案:

答案 0 :(得分: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
});

答案 1 :(得分:-2)

您可以使用jQuery的live()或delegate()或on()方法,具体取决于您用于在添加到文档的当前和未来图像元素上注册错误事件的jQuery版本。请参阅http://api.jquery.com/live/