.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" );