ホームページ >ウェブフロントエンド >jsチュートリアル >RemoveEventListener が JavaScript で機能しないのはなぜですか?
JavaScript RemoveEventListener が動作しない
イベント処理の領域では、removeEventListener メソッドは要素からイベント リスナーを切り離す上で重要な役割を果たします。ただし、removeEventListener が期待どおりに機能しないという問題が発生すると、イライラすることがあります。
次のコード スニペットを検討してください。
<code class="javascript">area.addEventListener('click',function(event) { app.addSpot(event.clientX,event.clientY); app.addFlag = 1; },true);</code>
このコードは、匿名関数を「クリック」のイベント リスナーとして適切にアタッチします。 ' area 要素のイベント。ただし、次のコードを使用してこのリスナーを削除しようとすると、
<code class="javascript">area.removeEventListener('click',function(event) { app.addSpot(event.clientX,event.clientY); app.addFlag = 1; },true);</code>
障害が発生する可能性があります。問題は、addEventListener とremoveEventListener で使用される匿名関数の独特の性質にあります。 RemoveEventListener への引数として指定された関数は、以前に登録された関数と同一ではありません。この問題を解決するには、リスナー関数を名前付き変数に割り当てます:
<code class="javascript">function foo(event) { app.addSpot(event.clientX,event.clientY); app.addFlag = 1; } area.addEventListener('click',foo,true); area.removeEventListener('click',foo,true);</code>
以上がRemoveEventListener が JavaScript で機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。