可能重复:
Inspect attached event handlers for any DOM element
是否有一个工具--如浏览器扩展、jQuery控制台脚本、书签或Firebug插件--显示由特定DOM元素触发的所有事件,并包括当前侦听这些事件的任何事件处理程序?
发布于 2010-08-09 07:10:03
你在寻找:
FireQuery
http://firequery.binaryage.com/
要做到这一点,您可以始终从一个events data访问jQuery object结构。
示例:
$(document.body).bind('click', function(){
alert('I am an event handler!');
});
$.each($(document.body).data('events'), function(i,v){
console.log(i);
$.each(v, function(i2,v2){
console.log(' > ', v2.handler.toString());
});
});这将列出FireBug/Webkit控制台中的所有事件,并将其事件处理程序函数打印为纯文本。您可以删除.toString()部件或记录v2获取的更详细信息。
更新
就像Anurag评论的那样,这将只显示通过jQuery绑定的处理程序。它不会查找addEventhandler() / addHandler或内联事件处理程序。
您可以通过检查on-xxx属性查找内联事件处理程序。DOM level3确实实现了hasEventListenerNS,但我认为还没有任何浏览器使用这些。
发布于 2010-08-09 07:12:19
Chrome内置的开发人员栏显示了绑定到特定DOM元素的事件处理程序,但它没有列出没有已绑定处理程序的事件。
https://stackoverflow.com/questions/3437953
复制相似问题