jQuery でイベント ハンドラーが要素にバインドされているかどうかをテストする [重複] 質問する

jQuery でイベント ハンドラーが要素にバインドされているかどうかをテストする [重複] 質問する

jQuery を使用して、要素にクリック ハンドラー、変更ハンドラー、または何らかの種類のイベント ハンドラーがバインドされているかどうかを判断することは可能ですか?

さらに、特定の種類のイベントに対してクリック ハンドラー (または任意の種類のイベント ハンドラー) がいくつあるか、またイベント ハンドラーにどのような関数が含まれているかを判断することは可能ですか?

ベストアンサー1

この情報はデータ キャッシュから取得できます。

たとえば、コンソール (firebug、ie8) にログを記録します。

console.dir( $('#someElementId').data('events') );

または繰り返します:

jQuery.each($('#someElementId').data('events'), function(i, event){

    jQuery.each(event, function(i, handler){

        console.log( handler.toString() );

    });

});

もう一つの方法は、次のものを使うことですブックマークレットしかし、明らかにこれは実行時には役に立ちません。

おすすめ記事