首頁 > web前端 > js教程 > 如何使用 jQuery 檢索綁定到元素的事件偵聽器清單?

如何使用 jQuery 檢索綁定到元素的事件偵聽器清單?

Linda Hamilton
發布: 2024-11-08 02:52:02
原創
442 人瀏覽過

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

使用jQuery 檢索分配給元素的事件偵聽器

在JavaScript 中,將事件處理程序附加到元素是增強用戶交互的常見做法。 jQuery 提供了強大的事件處理功能,可輕鬆指派和管理元素上的事件偵聽器。這就提出了一個問題:我們可以使用 jQuery 來擷取綁定到特定元素的事件清單嗎?

問題:

場景:我們有一個帶有ID 的元素" elm”,我們已將兩個事件處理程序附加到此連結- 一個用於按一下事件,另一個用於滑鼠懸停事件。

<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
        }
    ] 
}
登入後複製

中Chrome,您可以右鍵點擊處理函數並選擇「檢視函數定義」來追蹤其在程式碼中的起源。

以上是如何使用 jQuery 檢索綁定到元素的事件偵聽器清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板