2

Ajaxによっていくつかのコンテンツをページにロードし、.on()メソッドを介してイベントを新しい着信要素にバインドしました。

とにかくすべてのバインディングイベントを取得することはできます<div class="inner">か?すべてのコンテンツが読み込まれた後$("div.inner").data('events')、コンソールで試してみましたが、他に何もありません。undefined

HTML:

<div id="out"><p></p></div>​

JavaScript :(実際にはajaxではなく、単なるシミュレーション)

var innDiv = '<div class="inner">inner</div>' +
'<div class="inner">inner</div>' +
'<div class="inner">inner</div>';

$(document).on('click','.inner', function(){$(this).toggleClass("green")});

setTimeout('$("#out").append(innDiv)',2000);​

これがjsfiddleコードのデモです。

4

3 に答える 3

4

イベントをdocument要素にバインドしたので、これを試してください。

$(document).data("events")
于 2012-05-03T10:55:38.050 に答える
4

jQuery 1.8から、$(element).data( "events")が削除されました。ただし、デバッグの目的で、を使用$._data(element, "events")すると、要素にバインドされているイベントを取得できます。これはパブリックインターフェイスではないため、将来的には機能しない可能性があります。

ここでjQueryリリースログを確認してください。

于 2013-03-29T07:37:33.683 に答える
0

申し訳ありませんが、その場合は、ライブイベントの場合です。

$('.target').live('click', function foo(){  });

また

$('containerObj').on('click', 'target', function foo(){  });

ライブイベントをバインドしているオブジェクトのイベントデータを確認する必要がある場合があります。

ドキュメントレベルの場合は、ドキュメントオブジェクトのイベントをチェックする必要がある場合があります。そうでない場合は、イベントがバインドされているターゲットコンテナをチェックする必要があります。すなわち

実行する要素からライブ添付イベントを削除します。

$('containerObj').off('click', 'target', function foo(){  });

それが役に立てば幸い。

于 2012-05-03T10:57:02.073 に答える