オブジェクトにイベントリスナーを追加するときに、関数に引数を渡す必要があります。したがって、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. コールバックに関数名を渡すにはどうすればよいですか?
- 12. リモートブランチが削除されたときにローカルリモートトラッキングブランチを削除するにはどうすればよいですか?
- 13. マーカーが削除されたときにInfoWindowを削除するにはどうすればよいですか?
- 14. addEventListenerで渡されたリスナー関数に引数を渡すにはどうすればよいですか?
- 15. なぜMatlabの匿名関数は匿名と呼ばれていますか?
- 16. イベントリスナーの匿名関数とイベントリスナーで機能する匿名関数との比較
- 17. 関数名を持たないイベントリスナーを削除する
- 18. 表示オブジェクトからすべてのイベントリスナーを削除するにはどうすればよいですか?
- 19. イベントリスナーの匿名関数
- 20. インライン匿名関数を使用する場合のイベントリスナーの削除
- 21. 匿名の.js関数がonclickイベントにアタッチされているかどうかを確認するにはどうすればよいですか?
- 22. 削除されたファイルからPyDevデバッガブレークポイントを削除するにはどうすればよいですか?
- 23. 渡すウィンドウとすぐに呼び出された匿名関数に未定義。どうして?
- 24. パンダテーブルに挿入された行名を削除するにはどうすればよいですか?
- 25. JavaScriptで関数を匿名にするにはどうすればよいですか?
- 26. スキームのリストから匿名関数を適用するにはどうすればよいですか?
- 27. TypeScriptで匿名関数を実行するにはどうすればよいですか?
- 28. Chromeのパフォーマンスアナライザで匿名のJavaScript関数をデバッグするにはどうすればよいですか?
- 29. コミットが決して削除されないようにするにはどうすればよいですか?
- 30. JavaでNeo4jのノードと関係を削除/削除するにはどうすればよいですか?
私は関数を起動しようとするたびに、私は 'el.addOneTimeEventListenerがfunction'ないというエラーを取得します。私は同じ機能を実装しているようですが、何が問題なのでしょうか? –
私は解決策を編集し、デモを追加しました。 –