1. ホーム
  2. javascript

ある要素/文書にJavaScriptのイベントリスナー/ハンドラが添付されているかどうかを確認するにはどうすればよいですか?[重複している]をクリックします。

2023-09-25 20:39:59

質問

ネットで検索してみましたが、うまく検索クエリを作成できないようです。

どのように私は、jQueryまたは単にjavascriptで、要素(複数可)/ドキュメント/ウィンドウに接続されているか、DOMに存在するすべてのハンドラまたはイベントリスナーをリストアップすることができますか?

どのように解決するのですか?

jQueryを使用しない場合。

を使ってリスナーを追加した場合 elem.addEventListener() メソッドで追加された場合、これらのリスナーをリストアップするのは簡単ではありません。この場合 EventTarget.addEventListener() メソッドをラップしてオーバーライドします。そうすれば、どのようなリスナーが登録されたかという情報を得ることができます。

var f = EventTarget.prototype.addEventListener; // store original
EventTarget.prototype.addEventListener = function(type, fn, capture) {
  this.f = f;
  this.f(type, fn, capture); // call original method
  alert('Added Event Listener: on' + type);
}

動作例は http://jsfiddle.net/tomas1000r/RDW7F/