1. ホーム
  2. javascript

[解決済み] jQueryで要素にバインドされたイベントを見つけることはできますか?

2022-03-14 16:28:36

質問

このリンクに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" ?

解決方法は?

最近のバージョンの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では、ハンドラ関数を右クリックして、"view function definition"をクリックすると、コード内で定義されている場所を正確に表示することができます。