我可以通过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中,您可以右键单击处理函数,然后单击“查看函数定义”以向您显示代码中定义的确切位置。


一般情况:

  • 点击F12打开开发工具
  • 点击Sources选项卡
  • 在右侧,向下滚动到Event Listener Breakpoints ,然后展开树
  • 点击你想听的事件。
  • 与目标元素进行交互,如果他们触发,您将在调试器中获得一个中断点
  • 同样,您可以:

  • 右击目标元素 - >选择“ Inspect element
  • 向下滚动到开发框架的右侧,底部是' event listeners '。
  • 展开树以查看附加到元素的事件。 不知道这是否适用于通过冒泡处理的事件(我猜不是)

  • 我为这个后代添加了这个; 有一个更简单的方法,不涉及写更多的JS。 使用Firefox的惊人firebug插件,

  • 右键单击元素并选择'用Firebug检查元素'
  • 在边栏面板(如屏幕截图所示)中,使用小箭头导航到“事件”选项卡
  • 事件选项卡显示每个事件的事件和相应的功能
  • 它旁边的文本显示了功能位置
  • 在这里输入图像描述

    链接地址: http://www.djcxy.com/p/49171.html

    上一篇: Can I find events bound on an element with jQuery?

    下一篇: Check if event exists on element