オブジェクトにイベントリスナーを追加するときに、関数に引数を渡す必要があります。したがって、el.addEventListener("click", (evt) => { someFunc(arg) })
のようにそれをラップする必要があります。しかし、私はこのイベントリスナーを後で私のプロジェクトで削除することができません。参照されている関数が匿名関数である場合、どのようにイベントリスナーを削除しますか?匿名関数として渡されたイベントリスナーを削除するにはどうすればよいですか?
1
A
答えて
2
removeEventListener
を使用してください。このには、あなたの関数についての参照を保持するが必要です。
var func = (evt) => { someFunc(arg) };
el.addEventListener("click", func);
el.removeEventListener("click", func)
1
あなたが後でイベントの複数のタイプで、プロジェクト全体でそれを使用するために、removeEventListenerを使用して、addOneTimeEventListener
関数を作成することができます
function addOneTimeEventListener(node, type, callback) {
node.addEventListener(type, function(evt) {
evt.target.removeEventListener(evt.type, arguments.callee);
return callback(evt);
});
}
そして、それを使うより:
addOneTimeEventListener(el, 'click', evt => someFunc(arg));
ワーキングデモ:
var addOneTimeEventListener = function(node, type, callback) {
node.addEventListener(type, function(evt) {
evt.target.removeEventListener(evt.type, arguments.callee);
return callback(evt);
});
},
el = document.getElementById('paragraph');
addOneTimeEventListener(el, 'click', evt => console.log('Clicked once!'));
<p id="paragraph">Some text example...</p>
関連する問題
- 1. 匿名コンポーネントからイベントリスナーを削除するにはどうすればよいですか?
- 2. React.jsで、componentWillUnmountを使用してイベントリスナーを削除すると、イベントリスナーが削除されるようにするにはどうすればよいですか?
- 3. JavaScriptで匿名関数呼び出しによるイベントリスナーを削除する
- 4. javascriptでイベントリスナーを削除するにはどうすればよいですか?
- 5. 匿名関数によって宣言された要素のイベントを削除するにはどうすればよいですか?
- 6. イベントリスナーを使用して関数に引数を渡すにはどうすればよいですか?
- 7. 自己実行module.exported匿名ノード関数に引数を渡すにはどうすればよいですか?
- 8. 部分ビューに渡された匿名型オブジェクトにアクセスするにはどうすればよいですか?
- 9. 匿名関数に値を渡すにはどうすればよいですか?
- 10. コールバックに関数名を渡すにはどうすればよいですか?
- 11. マーカーが削除されたときにInfoWindowを削除するにはどうすればよいですか?
- 12. リモートブランチが削除されたときにローカルリモートトラッキングブランチを削除するにはどうすればよいですか?
- 13. addEventListenerで渡されたリスナー関数に引数を渡すにはどうすればよいですか?
- 14. なぜMatlabの匿名関数は匿名と呼ばれていますか?
- 15. 関数名を持たないイベントリスナーを削除する
- 16. イベントリスナーの匿名関数
- 17. 表示オブジェクトからすべてのイベントリスナーを削除するにはどうすればよいですか?
- 18. 渡すウィンドウとすぐに呼び出された匿名関数に未定義。どうして?
- 19. 削除されたファイルからPyDevデバッガブレークポイントを削除するにはどうすればよいですか?
- 20. JavaScriptで関数を匿名にするにはどうすればよいですか?
- 21. JavaScript:Class.prototype関数としてイベントリスナーを削除
- 22. スキームのリストから匿名関数を適用するにはどうすればよいですか?
- 23. JavaでNeo4jのノードと関係を削除/削除するにはどうすればよいですか?
- 24. 関数を呼び出すときに引数名を渡すにはどうすればよいですか?
- 25. コミットが決して削除されないようにするにはどうすればよいですか?
- 26. TypeScriptで匿名関数を実行するにはどうすればよいですか?
- 27. オブジェクトへのリンクを匿名関数に送信するにはどうすればよいですか?
- 28. 関数を別の関数にパラメータとして渡すにはどうすればよいですか?
- 29. 初期化関数のイベントリスナーにプロトタイプ関数を追加するにはどうすればよいですか?
- 30. 公開されているluaj関数にオブジェクトを渡すにはどうすればよいですか?
私は関数を起動しようとするたびに、私は 'el.addOneTimeEventListenerがfunction'ないというエラーを取得します。私は同じ機能を実装しているようですが、何が問題なのでしょうか? –
私は解決策を編集し、デモを追加しました。 –