尝试在线搜索,但看起来我不能正确制定搜索查询。
听起来很简单,我怎么能用jquery或javascript列出所有附加到元素/文档/窗口或存在于dom中的处理程序或事件监听器。
只是想知道。
提前谢谢。
答案 0 :(得分:47)
答案 1 :(得分:32)
调试时,如果您想查看是否有活动,我建议您使用Chrome开发者工具的Visual Event或 Elements“部分:选择一个元素并查找”事件监听器在右下角。
在您的代码中,如果您在1.8版之前使用jQuery,则可以使用:
$(selector).data("events")
获取活动。从版本1.8开始,这已经停止(请参阅this bug ticket)。您可以使用:
$._data(element, "events")
但不建议这样做,因为它是一个内部jQuery结构,并且可能在将来的版本中发生变化。
This question有一些可能有用的答案,但没有一个像$(selector).data("events")
那样特别优雅。
答案 2 :(得分:16)
没有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);
}
找到
答案 3 :(得分:3)
我刚刚发现了视觉事件2:
http://www.sprymedia.co.uk/article/Visual+Event+2
转到“make it go”部分,然后将文本链接拖到书签工具栏 转到包含事件的页面,然后单击书签
在FF Mac中测试