如何检查附加到元素/文档的任何JavaScript事件监听器/处理程序?
试图在网上search,但看起来不像我可以正确地制定search查询。
所以尽可能简单,我怎么能,无论是使用jQuery或只是列出所有的处理程序或事件侦听器附加到元素(S)/文档/窗口或存在于DOM。
就是想。
先谢谢你。
在1.8之前的jQuery中,尝试使用$("#element").data("events")
编辑:
还有jQuery扩展: listHandlers
在debugging时,如果您想查看是否有事件发生,我build议您使用Chrome的“开发工具”的“ 视觉事件”或“ 元素”部分:select一个元素,并在右下angular查找“事件监听器” 。
在你的代码中,如果你在版本1.8之前使用jQuery,你可以使用:
$(selector).data("events")
得到事件。 从1.8版开始,这个版本已经停止了(见这个bug票 )。 您可以使用:
$._data(element, "events")
但不推荐这样做,因为它是一个内部的jQuery结构,并可能在将来的版本中改变。
这个问题有一些可能有用的答案,但没有一个像$(selector).data("events")
那样特别优雅。
没有jQuery:
如果使用elem.addEventListener()方法添加侦听器,则列出这些侦听器并不容易。 你可以用自己的方法来覆盖EventTarget.addEventListener()方法。 那么你将得到这些信息,哪些听众被注册了。
var f = EventTarget.prototype.addEventListener; // store original EventTarget.prototype.addEventListener = function(type, fn, capture) { this.f = f; this.f(type, fn, capture); // call original method alert('Added Event Listener: on' + type); }
我刚刚发现了视觉事件2:
http://www.sprymedia.co.uk/article/Visual+Event+2
在“让它走”部分下,然后拖动文本链接到您的书签工具栏转到有事件的页面,然后单击书签
在FF Mac进行testing