114 lines
6.0 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<article class="" id="post-">
<header class="entry-header">
<h1 class="entry-title">.error()</h1>
<div class="entry-meta">
所属分类:<span class="category"><a href="/category/events/">事件</a> &gt; <a href="/category/events/browser-events/">浏览器事件</a></span><span class="category-divider"> | </span><span class="category"><a href="/category/deprecated/">弃用</a> &gt; <a href="/category/deprecated/deprecated-1.8/">1.8 版本弃用的 API</a></span><span class="category-divider"> | </span><span class="category"><a href="/category/removed/">已删除的函数</a></span>
<span class="pull-right">英文文档:<a href="https://api.jquery123.com/error/" target="_blank">.error()</a></span>
</div><!-- .entry-meta -->
</header><!-- .entry-header -->
<!-- .entry-header -->
<div class="entry-content">
<article class="entry method" id="error1"><h2 class="section-title">
<span class="name">.error( handler(eventObject) )</span><span class="returns">返回: <a href="/Types/#jQuery">jQuery</a></span><span class="version-details">version deprecated: <a href="/category/version/1.8/">1.8</a></span>
</h2>
<div class="entry-wrapper">
<p class="desc"><strong>描述: </strong>为 JavaScript 的 "error" 事件绑定一个处理函数。</p>
<ul class="signatures">
<li class="signature" id="error-handlereventObject">
<h4 class="name">
<span class="version-details">添加的版本: <a href="/category/version/1.0/">1.0</a></span>.error( handler(eventObject) )</h4>
<ul><li>
<div><strong>handler(eventObject)</strong></div>
<div>类型: <a href="/Types/#Function">Function</a>()</div>
<div>每当事件触发时执行的函数。</div>
</li></ul>
</li>
<li class="signature" id="error-eventData-handlereventObject">
<h4 class="name">
<span class="version-details">添加的版本: <a href="/category/version/1.4.3/">1.4.3</a></span>.error( [eventData ], handler(eventObject) )</h4>
<ul>
<li>
<div><strong>eventData</strong></div>
<div>类型: <a href="/Types/#Object">Object</a>
</div>
<div>一个对象,它包含的数据键值对映射将被传递给事件处理程序。</div>
</li>
<li>
<div><strong>handler(eventObject)</strong></div>
<div>类型: <a href="/Types/#Function">Function</a>()</div>
<div>每当事件触发时执行的函数。</div>
</li>
</ul>
</li>
</ul>
<div class="longdesc" id="entry-longdesc">
<p>这个方法是 <code>.bind('error', handler)</code> 的快捷方式。</p>
<p><code>error</code>事件被发送到元素,比如一张图片被引用,由浏览器加载。如果没有正确载入,这个事件就会被调用。</p>
<p>例子,考虑一个简单的图像页面:</p>
<div class="syntaxhighlighter xml nogutter">
<table>
<tbody>
<tr>
<td class="gutter">
<div class="line n1">1</div>
</td>
<td class="code">
<pre><div class="container"><div class="line"><code><span class="tag">&lt;<span class="title">img</span> <span class="attribute">alt</span>=<span class="value">"Book"</span> <span class="attribute">id</span>=<span class="value">"book"</span> /&gt;</span></code></div></div></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>事件处理器可以绑定到图像上:</p>
<div class="syntaxhighlighter javascript nogutter">
<table>
<tbody>
<tr>
<td class="gutter">
<div class="line n1">1</div>
<div class="line n2">2</div>
<div class="line n3">3</div>
<div class="line n4">4</div>
<div class="line n5">5</div>
</td>
<td class="code">
<pre><div class="container"><div class="line"><code>$(<span class="string">'#book'</span>)</code></div></div><div class="container"><div class="line"><code> .error(<span class="keyword">function</span>() {</code></div></div><div class="container"><div class="line"><code> alert(<span class="string">'Handler for .error() called.'</span>)</code></div></div><div class="container"><div class="line"><code> })</code></div></div><div class="container"><div class="line"><code> .attr(<span class="string">"src"</span>, <span class="string">"missing.png"</span>);</code></div></div></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>如果图像无法加载例如因为目前所提供的URL不存在警告显示</p>
<p>
<span class="output">Handler for .error() called.</span>
</p>
<blockquote>
<p>
这个事件处理程序必须在浏览器触发<code>error</code>事件之前绑定这就是为什么示例绑定的处理函数后设置src属性。此外当页面保存到本地的时候此事件可能无法正确触发。由于<code>error</code>依赖于正常的HTTP状态码如果URL使用<code>file:</code>协议,它通常不会被触发。</p>
</blockquote>
<p>注意一个jQuery的error事件处理器不应该附加到window对象上。当一个脚本错误的时候浏览器就会触发 window 的 error 事件。无论如何, window 的 error 事件接收不同的参数和返回值与传统的事件不一样。若要绑定 window 的 error 事件,请使用<code>window.onerror</code>代替。
</p>
</div>
<section class="entry-examples" id="entry-examples"><header><h2 class="underline">例子:</h2></header><div class="entry-example" id="example-0">
<h4><span class="desc">为 IE 用户隐藏 "无效的图片" 图标,并使用自定义图片来代替。:</span></h4>
<div class="syntaxhighlighter javascript ">
<table>
<tbody>
<tr>
<td class="gutter">
<div class="line n1">1</div>
<div class="line n2">2</div>
<div class="line n3">3</div>
<div class="line n4">4</div>
<div class="line n5">5</div>
</td>
<td class="code">
<pre><div class="container"><div class="line"><code>$(<span class="string">"img"</span>)</code></div></div><div class="container"><div class="line"><code> .error(<span class="keyword">function</span>(){</code></div></div><div class="container"><div class="line"><code> $(<span class="keyword">this</span>).hide();</code></div></div><div class="container"><div class="line"><code> })</code></div></div><div class="container"><div class="line"><code> .attr(<span class="string">"src"</span>, <span class="string">"missing.png"</span>);</code></div></div></pre>
</td>
</tr>
</tbody>
</table>
</div>
</div></section>
</div></article> </div>
</article>