尝试在线搜索,但看起来我无法正确制定搜索查询。
我如何使用 jQuery 或仅使用 javascript 列出附加到元素/文档/窗口或存在于 DOM 中的所有处理程序或事件侦听器?
尝试在线搜索,但看起来我无法正确制定搜索查询。
我如何使用 jQuery 或仅使用 javascript 列出附加到元素/文档/窗口或存在于 DOM 中的所有处理程序或事件侦听器?
调试时,如果只想查看是否有事件,我建议使用Chrome 开发人员工具的“可视事件”或“元素”部分:选择一个元素并在右下角查找“事件侦听器”。
在您的代码中,如果您使用的是 1.8 版之前的 jQuery,则可以使用:
$(selector).data("events")
获取事件。从 1.8 版开始,此功能已停止使用(请参阅此错误票证)。您可以使用:
$._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);
}
您可以在http://jsfiddle.net/tomas1000r/RDW7F/找到工作示例
我刚刚发现了视觉事件 2:
http://www.sprymedia.co.uk/article/Visual+Event+2
转到“让它运行部分”并将文本链接拖动到书签工具栏转到包含事件的页面并单击书签
在 FF Mac 中测试