猿问

我能找到绑定在jQuery元素上的事件吗?

我能找到绑定在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');}

是否有任何方法获取绑定在元素上的所有事件的列表,在本例中为on元素id="elm"?


叮当猫咪
浏览 436回答 3
3回答

烙印99

在jQuery的现代版本中,您可以使用$._data方法查找jQuery附加到有关元素的任何事件。注,这是一种仅供内部使用的方法://&nbsp;Bind&nbsp;up&nbsp;a&nbsp;couple&nbsp;of&nbsp;event&nbsp;handlers$("#foo").on({ &nbsp;&nbsp;&nbsp;&nbsp;click:&nbsp;function(){&nbsp;alert("Hello")&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;mouseout:&nbsp;function(){&nbsp;alert("World")&nbsp;}});//&nbsp;Lookup&nbsp;events&nbsp;for&nbsp;this&nbsp;particular&nbsp;Element$._data(&nbsp;$("#foo")[0],&nbsp;"events"&nbsp;);结果$._data对象将包含我们设置的两个事件(如下图所示mouseout财产扩大):然后,在Chrome中,您可以右键单击处理程序函数,然后单击“查看函数定义”,以显示在代码中定义它的确切位置。

qq_遁去的一_1

一般情况:命中F12打开开发工具单击Sources附签在右边,向下滚动到Event Listener Breakpoints,并扩展树单击要侦听的事件。与目标元素交互,如果它们触发,将在调试器中得到一个断点。同样,你可以:右键单击目标元素->选择“Inspect element"向下滚动到开发框架的右侧,底部是‘event listeners'.展开树,查看将哪些事件附加到元素。不确定这是否适用于通过冒泡处理的事件(我猜不行)

POPMUISE

现在,您可以使用javascript函数getEventListener()获得绑定到对象的事件侦听器列表。例如,在dev工具控制台中键入以下内容://&nbsp;Get&nbsp;all&nbsp;event&nbsp;listners&nbsp;bound&nbsp;to&nbsp;the&nbsp;document&nbsp;objectgetEventListeners(document);
随时随地看视频慕课网APP
我要回答