このリンクに 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 でハンドラー関数を右クリックし、「関数定義の表示」をクリックすると、コード内で定義されている正確な場所が表示されます。