1. ホーム
  2. javascript

[解決済み] 要素にイベントが存在するかどうかを確認する[重複]。

2022-04-13 08:02:43

質問

jQueryでイベントが存在するかどうかを確認する方法はありますか?カスタムネームスペースイベントを使用するプラグインに取り組んでいますが、イベントが要素にバインドされているかどうかをチェックできるようにしたいと思います。

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

$('body').click(function(){ alert('test' )})

var foo = $.data( $('body').get(0), 'events' ).click
// you can query $.data( object, 'events' ) and get an object back, then see what events are attached to it.

$.each( foo, function(i,o) {
    alert(i) // guid of the event
    alert(o) // the function definition of the event handler
});

オブジェクトの参照(ただしjQueryオブジェクトではない)を$.dataに渡し、第2引数に'events'を渡せば、'click'などのすべてのイベントを含むオブジェクトを返すので、検査することができます。そのオブジェクトをループして、イベントハンドラが何を行うかを見ることができます。