错误事件


将事件处理程序绑定到“error”事件,或在元素上触发该事件。

.on( "error" [, eventData ], handler )返回值: jQuery

描述: 将事件处理程序绑定到“error”事件。

此页面描述了 error 事件。对于 jQuery 3.0 中移除的 .error() 方法,请参阅 .error()

error 事件发送到由文档引用并由浏览器加载的元素,例如图像。如果元素未正确加载,则会调用它。

例如,考虑一个包含简单图像元素的页面

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

事件处理程序可以绑定到图像

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

如果图像无法加载(例如,因为它不存在于提供的 URL 中),则会显示警报

调用了 `error` 处理程序。

事件处理程序必须在浏览器触发 error 事件之前附加,这就是示例在附加处理程序后设置 src 属性的原因。此外,当页面在本地提供服务时,error 事件可能无法正确触发;error 依赖于 HTTP 状态代码,如果 URL 使用 file: 协议,通常不会触发。

注意:不应将 jQuery error 事件处理程序附加到 window 对象。当脚本错误发生时,浏览器会触发 windowerror 事件。但是,窗口 error 事件接收不同的参数,并且具有与传统事件处理程序不同的返回值要求。请改用 window.onerror

示例

要将所有丢失的图像替换为另一个图像,您可以在 error 处理程序中更新 src 属性。确保替换图像存在;否则,error 事件将无限期地触发。

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