返回值:jQueryerror(handler(eventObject))

为 JavaScript 的 "error" 事件绑定一个处理函数。

该方法是 .bind('error', handler) 的快捷方式。

以图像元素为例,图像元素被文档引用,并且由浏览器浏览器加载。如果元素加载不正确,该方法就会被调用。

例如,页面上有一个图像元素:

<img alt="Book" id="book" />

可以像下面这样为其绑定该事件:

$('#book')
  .error(function() {
    alert('Handler for .error() called.')
  })
  .attr("src", "missing.png");

如果图像不能被加载(例如,可能是由于指定的 URL 不存在),则会弹出如下警告框:

Handler for .error() called.

必须在浏览器触发该事件之前,绑定该事件。这就是为什么上例中,设置图片的 src 属性操作要放到绑定事件之后。同时,如果页面存放在本地,那么该事件可能无法被正确的触发,因为 error 依赖 HTTP 返回的状态码。一般情况下,如果 URL 使用的是 file: 协议,那么该事件也不会被触发。

注意: jQuery error 事件不应该绑定到 window 对象上。当脚本出错时,浏览器会触发 window 的 error 事件。然而,window 的 error 事件接收的参数和返回值与传统的事件不一样。若要绑定 window 的 error 事件,请使用 window.onerror 来代替。

示例:

为 IE 用户隐藏 "无效的图片" 图标,并使用自定义图片来代替。

jQuery 代码:
$("img")
  .error(function(){
    $(this).hide();
  })
  .attr("src", "missing.png");