.error()


.error( handler(eventObject) )返回: jQueryversion deprecated: 1.8

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

  • 添加的版本: 1.0.error( handler(eventObject) )

    • handler(eventObject)
      类型: Function()
      每当事件触发时执行的函数。
  • 添加的版本: 1.4.3.error( [eventData ], handler(eventObject) )

    • eventData
      类型: Object
      一个对象,它包含的数据键值对映射将被传递给事件处理程序。
    • handler(eventObject)
      类型: Function()
      每当事件触发时执行的函数。

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

error事件被发送到元素,比如一张图片被引用,由浏览器加载。如果没有正确载入,这个事件就会被调用。

例子,考虑一个简单的图像页面:

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

事件处理器可以绑定到图像上:

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

如果图像无法加载(例如,因为目前所提供的URL不存在),警告显示:

Handler for .error() called.

这个事件处理程序必须在浏览器触发error事件之前绑定,这就是为什么示例绑定的处理函数后设置src属性。此外,当页面保存到本地的时候此事件可能无法正确触发。由于error依赖于正常的HTTP状态码,如果URL使用file:协议,它通常不会被触发。

注意:一个jQuery的error事件处理器不应该附加到window对象上。当一个脚本错误的时候,浏览器就会触发 window 的 error 事件。无论如何, window 的 error 事件接收不同的参数和返回值与传统的事件不一样。若要绑定 window 的 error 事件,请使用window.onerror代替。

例子:

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

1
2
3
4
5
$("img")
.error(function(){
$(this).hide();
})
.attr("src", "missing.png");