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 事件。但是,視窗 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" );