ホームページ >ウェブフロントエンド >jsチュートリアル >RemoveEventListener が JavaScript で機能しないのはなぜですか?

RemoveEventListener が JavaScript で機能しないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-03 08:08:30460ブラウズ

Why Is My removeEventListener Not Working in 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。