ホームページ >ウェブフロントエンド >jsチュートリアル >jQueryを使用して要素にバインドされたイベントリスナーのリストを取得するにはどうすればよいですか?

jQueryを使用して要素にバインドされたイベントリスナーのリストを取得するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-08 02:52:02423ブラウズ

How can I retrieve a list of event listeners bound to an element using jQuery?

jQuery を使用した要素に割り当てられたイベント リスナーの取得

JavaScript では、ユーザー インタラクションを強化するための一般的な方法として、要素にイベント ハンドラーをアタッチします。 jQuery は堅牢なイベント処理機能を提供し、要素へのイベント リスナーの割り当てと管理を容易にします。ここで疑問が生じます: jQuery を使用して特定の要素にバインドされたイベントのリストを取得できますか?

問題:

シナリオ: ID が「」の要素があります。 elm" として、このリンクに 2 つのイベント ハンドラーをアタッチしました。1 つはクリック イベント用、もう 1 つはマウスオーバー イベント用です。

<a href='#'>
$(function()
{
  $('#elm').click(_f);
  $('#elm').mouseover(_m);
});

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

要素に関連付けられたすべてのイベントのリストを取得する方法はありますか? ID "elm" を持つ?

答え:

jQuery の最近のバージョンでは、$._data メソッドを使用して、イベントを含む要素に関する情報を取得できます。それに縛られている。 $._data は内部使用のみのメソッドであることに注意してください。

// 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 は、指定された要素に添付されたイベントを含むオブジェクトを返します。

{ 
    click: [
        {
            handler: function(){ alert("Hello") }  // The defined click handler
        } 
    ],
    mouseout: [
        {
            handler: function(){ alert("World") }  // The defined mouseout handler
        }
    ] 
}

In Chrome の場合、ハンドラー関数を右クリックして [関数定義の表示] を選択すると、コード内のその起源を追跡できます。

以上がjQueryを使用して要素にバインドされたイベントリスナーのリストを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。