我可以通过jQuery找到绑定在元素上的事件吗?
我在这个链接上绑定了两个事件处理程序:
<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中,您可以右键单击处理函数,然后单击“查看函数定义”以向您显示代码中定义的确切位置。
一般情况:
Sources
选项卡 Event Listener Breakpoints
,然后展开树 同样,您可以:
Inspect element
” event listeners
'。 我为这个后代添加了这个; 有一个更简单的方法,不涉及写更多的JS。 使用Firefox的惊人firebug插件,