jQuery で要素にバインドされたイベントを見つけることはできますか? 質問する

jQuery で要素にバインドされたイベントを見つけることはできますか? 質問する

このリンクに 2 つのイベント ハンドラーをバインドします。

<a href='#' id='elm'>Show Alert</a>

JavaScript:

$(function()
{
  $('#elm').click(_f);
  $('#elm').mouseover(_m);
});

function _f(){alert('clicked');}
function _m(){alert('mouse over');}

要素、この場合は を持つ要素にバインドされているすべてのイベントのリストを取得する方法はありますかid="elm"?

ベストアンサー1

jQuery の最新バージョンでは、$._dataメソッドを使用して、jQuery によって問題の要素にアタッチされたイベントを検索します。これは内部使用専用のメソッドであることに注意してください。

// Bind up a couple of event handlers
$("#foo").on({
    click: function(){ alert("Hello") },
    mouseout: function(){ alert("World") }
});

// Lookup events for this particular Element
$._data( $("#foo")[0], "events" );

結果は、$._data設定した両方のイベントを含むオブジェクトになります (mouseoutプロパティを展開した状態を下図に示します)。

$._ のコンソール出力

次に、Chrome でハンドラー関数を右クリックし、「関数定義の表示」をクリックすると、コード内で定義されている正確な場所が表示されます。

おすすめ記事