.error()

.error( handler )返回类型:jQueryversion deprecated: 1.8, removed: 3.0

描述:把一个事件处理函数绑定到“error”JavaScript事件上,或者在一个元素上触发该事件。

此方法是.on( "error", handler )的简写。

自从jQuery 1.8以来,.error()方法被淘汰了。请用.on( "error", handler )把事件处理函数附加到error上来代替。

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事件;error依赖于HTTP状态代码,如果URL使用file:协议,一般不会触发此事件。

注意,jQuery 的error事件处理处理不应该附加到window对象。当脚本发生错误时,浏览器会引发windowerror事件。然而,相较之便利事件处理函数,windows error事件会接受不同的参数,并具有不同的返回值需求。请用window.onerror来代替。

补充说明:

  • 因为.error()方法是.on( "error", handler )的简写,所以可以用.off( "error" )来分离它。

示例:

若要用另外的图像替换所有缺失的图像,你可以在传递给.error()的回调函数里面更新src特性。请确保替补图像是存在的,否则就会无限地触发error事件。

1
2
3
4
5
6
// If missing.png is missing, it is replaced by replacement.png
$( "img" )
.error(function() {
$( this ).attr( "src", "replacement.png" );
})
.attr( "src", "missing.png" );