尝试在线搜索,但看起来不像我可以正确制定搜索查询。
如何使用 jQuery 或 javascript 列出所有附加到 element/document/window 或以 DOM 格式显示的处理程序或事件侦听器?
In jQuery before 1.8, try using $("#element").data("events")
$("#element").data("events")
EDIT:
还有 jQuery 扩展: ListHandlers
我刚发现视觉事件2:
Http://www.sprymedia.co.uk/article/visual+event+2
进入“让它去部分”,并拖动文本链接到您的书签工具栏 转到一个有事件的页面,点击书签
在 FF Mac 中测试
在调试时,如果只想查看是否有事件,我建议使用右下角的 Visual Event或 Elements" section of Chrome's Developer Tools: select an element and look for "Event Listeners。
在代码中,如果在1.8版之前使用 jQuery,则可以使用:
$(selector).data("events")
to get the events. As of version 1.8, this is discontinued (see 这张虫子罚单). You can use:
$._data(element, "events")
但是不推荐这样做,因为它是一个内部的 jQuery 结构,并且在以后的版本中可能会发生变化。
这个问题 有一些可能有用的答案,但没有一个像 $(selector).data("events")那样特别优雅。
没有 jQuery:
如果使用 elem.addEventListener()方法添加侦听器,则不容易列出这些侦听器。您可以重写 EventTarget.addEventListener()方法,用您自己的方法包装它。然后你会得到信息,哪些听众被注册了。
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); }
Working example you can find at http://jsfiddle.net/tomas1000r/RDW7F/