要素にイベントが存在するかどうかを確認する [重複] 質問する

要素にイベントが存在するかどうかを確認する [重複] 質問する

jQuery にイベントが存在するかどうかを確認する方法はありますか? カスタム名前空間イベントを使用するプラグインを作成しており、イベントが要素にバインドされているかどうかを確認できるようにしたいと考えています。

ベストアンサー1

$('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' などのすべてのイベントが設定されたオブジェクトが返されます。そのオブジェクトをループして、イベント ハンドラーが何を行うかを確認できます。

おすすめ記事