加载中...

error()3.0-


概述    .error( handler(eventObject) )

返回值:jQuery

描述:为 JavaScript 的 "error" 事件绑定一个处理函数。

  • V : 1.0.error( handler(eventObject) )

    • handler(eventObject)
      类型: Function()
      每当事件触发时执行的函数。
  • V : 1.4.3.error( [eventData ], handler(eventObject) )

    • eventData
      类型: Anything
      一个对象,它包含的数据键值对映射将被传递给事件处理程序。
    • handler(eventObject)
      Type: Function( Event eventObject )
      每当事件触发时执行的函数。

这个方法是 .bind('error', handler) 的快捷方式。

从jQuery 1.8 开始.error() 方法已被宣告过时。使用.on( "error", handler )来代替 将事件处理程序附加到error事件。

error事件被发送到元素,比如一张图片被引用,由浏览器加载。如果没有正确载入,这个事件就会被调用。

示例,考虑一个简单的图像页面:

<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依赖于正常的HTTP状态码,如果URL使用file:协议,它通常不会被触发。

注意:一个jQuery的 error 事件处理器不应该附加到 window 对象上。当一个脚本错误的时候,浏览器就会触发 windowerror 事件。无论如何, windowerror 事件接收不同的参数和返回值与传统的事件不一样。若要绑定 windowerror 事件,请使用window.onerror代替。

Additional Notes(其他注意事项):

  • .error()方法只是作为.on( "error", handler )的一个速记写法,移除该事件可以使用.off( "error" )

示例

要使用其他图片替换所有丢失的图片,您可以使用一个内部更新src属性的回调函数,传递给.error()。注意要确保替换图像存在; 否则error 事件将无限期的触发。

// 如果 missing.png 丢失, 那么将被替换为 replacement.png
$( "img" )
  .error(function() {
    $( this ).attr( "src", "replacement.png" );
  })
  .attr( "src", "missing.png" );


还没有评论.