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

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

Susan Sarandon
リリース: 2024-11-03 08:08:30
オリジナル
458 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート