1. ホーム
  2. jquery

[解決済み] jQueryでオブジェクトに登録されたイベントハンドラを検索する

2022-03-17 20:29:37

質問

あるオブジェクトに対してどのイベントハンドラが登録されているかを調べる必要があります。

例えば

$("#el").click(function() {...});
$("#el").mouseover(function() {...});

$("#el") があります。 クリック マウスオーバー が登録されている。

それを見つけるための関数はありますか、そして、おそらくイベントハンドラを繰り返し処理しますか?

適切なメソッドによってjQueryオブジェクト上で可能でない場合、プレーンなDOMオブジェクト上で可能ですか?

解決方法は?

jQuery 1.8より、イベントデータはデータ用の"public API"からは利用できなくなりました。 読む このjQueryブログの記事 . 代わりにこれを使用するようになりました。

jQuery._data( elem, "events" );

elem は、jQueryのオブジェクトやセレクタではなく、HTMLの要素でなければなりません。

これは内部的な「プライベート」構造であり、変更してはいけないことに注意してください。 デバッグのためだけに使用してください。

古いバージョンのjQueryでは、古いメソッドを使用しなければならないかもしれません。

jQuery( elem ).data( "events" );