概述 .error( handler(eventObject) )
返回值:jQuery
描述:为 JavaScript 的 "error" 事件绑定一个处理函数。
这个方法是 .bind('error', handler)
的快捷方式。
从jQuery 1.8 开始, .error()
方法已被宣告过时。使用.on( "error", handler )
来代替 将事件处理程序附加到error
事件。
error
事件被发送到元素,比如一张图片被引用,由浏览器加载。如果没有正确载入,这个事件就会被调用。
示例,考虑一个简单的图像页面:
<img alt="Book" id="book" />
事件处理器可以绑定到图像上:
$('#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
代替。
.error()
方法只是作为.on( "error", handler )
的一个速记写法,移除该事件可以使用.off( "error"
)
。
示例
要使用其他图片替换所有丢失的图片,您可以使用一个内部更新src
属性的回调函数,传递给.error()
。注意要确保替换图像存在; 否则error
事件将无限期的触发。
// 如果 missing.png 丢失, 那么将被替换为 replacement.png $( "img" ) .error(function() { $( this ).attr( "src", "replacement.png" ); }) .attr( "src", "missing.png" );