.error()
分类:事件 > 浏览器事件 | 建议弃用 > 建议弃用于1.8
描述:把一个事件处理函数绑定到JavaScript事件“error”上。
该方法是.on( "error", handler )的简写。
自从jQuery 1.8,.error()方法被弃用了。请使用.on( "error", handler )来把事件处理函数附加到error事件上来代替。
被发送到元素上,比如说图像上的该error事件,是由document引起,由浏览器载入的。如果元素没有正确地加载就会调用它。
举个例子,设想网页上有一个图像元素:
<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事件可能不能正确地引发;error依赖于HTTP状态,而且如果URL使用file:协议,一般不会触发该事件。
注意:一个jQueryerror事件处理函数不能附加到window对象上。在发生一个脚本错误时,浏览器会引发window的error事件。然而,windows的error事件接受到一个不同的参数,而且具有与常见的事件处理函数不同的返回值。请使用window.onerror来代替。
其它说明
- 因为
.error()方法是.on( "error", handler )的简写,所以可以使用.off( "error" )来分离。
示例
要想把所有的缺失的图像替换成另一个,你可以在传给.error的回调函数内部更新元素属性src。确保替代的像是存在的;否则会没完没了地触发error事件。
// 如果该missing.png已经缺失了,会用replacement.png代替它。
$( "img" )
.error(function() {
$( this ).attr( "src", "replacement.png" );
})
.attr( "src", "missing.png" );