Pra*_*sad 347 javascript jquery javascript-events
我在这个链接上绑定了两个事件处理程序:
<a href='#' id='elm'>Show Alert</a>
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
$(function()
{
$('#elm').click(_f);
$('#elm').mouseover(_m);
});
function _f(){alert('clicked');}
function _m(){alert('mouse over');}
Run Code Online (Sandbox Code Playgroud)
有没有办法得到一个元素绑定的所有事件的列表,在这种情况下元素与id="elm"?
Sam*_*son 502
在现代版本的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" );
Run Code Online (Sandbox Code Playgroud)
结果$._data将是一个包含我们设置的两个事件的对象(如下图所示,mouseout扩展了属性):

然后在Chrome中,您可以右键单击处理程序函数并单击"查看函数定义"以显示代码中定义它的确切位置.
Val*_*hah 69
一般情况:
Sources选项卡Event Listener Breakpoints并展开树同样,您可以:
Inspect element"event listeners'.kak*_*oma 12
我正在为后代添加这个; 有一种更简单的方法,不涉及编写更多的JS.使用惊人的firebug插件for firefox,
现在,您可以使用javascript函数getEventListeners()简单地获取绑定到对象的事件侦听器列表.
例如,在开发工具控制台中键入以下内容:
// Get all event listners bound to the document object
getEventListeners(document);
Run Code Online (Sandbox Code Playgroud)
虽然这并不完全特定于 jQuery 选择器/对象,但在 FireFox Quantum 58.x 中,您可以使用开发工具在元素上找到事件处理程序:
请注意,事件可能附加到文档本身而不是相关元素。在这种情况下,您需要使用:
$._data( $(document)[0], "events" );
Run Code Online (Sandbox Code Playgroud)
并找到具有正确选择器的事件:
然后查看处理程序> [[FunctionLocation]]
| 归档时间: |
|
| 查看次数: |
203943 次 |
| 最近记录: |