试图在线搜索,但看起来我不能正确地制定搜索查询。
我如何使用jQuery或仅使用javascript列出附加到元素/文档/窗口或DOM中的所有处理程序或事件侦听器?
没有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/找到工作示例
[调试时,如果您只想看看是否有事件,建议您使用Visual Event或Chrome开发人员工具的元素]部分:选择一个元素并在右下角查找“事件监听器”>。
在您的代码中,如果您使用的是1.8之前的jQuery,则可以使用:
$(selector).data("events")
获取事件。从1.8版开始,此功能已终止(请参见this bug ticket)。您可以使用:
$._data(element, "events")
但是不建议这样做,因为它是内部jQuery结构,并且在以后的版本中可能会发生变化。
This question有一些可能有用的答案,但是它们都没有与$(selector).data("events")
相同的优雅之处。
我刚刚发现了视觉事件2: