使用 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中文网其他相关文章!