error 事件


为一个元素绑定 "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 事件。然而,window 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" );