jQuery + DevTools:如何快速获取附加到元素的事件处理程序

我问这个问题是因为我正在处理的项目中有一堆40K +非结构化jQuery代码。 即使对这个代码库进行最智能的搜索也无法回答最简单的问题

“如果点击这个红色按钮怎么办?”

意思是它不能指向凌乱的代码中设置的事件处理程序。

在代码库中搜索选择器对我没有帮助,我得到了300多个搜索结果。

我知道DevTools中有“ 事件监听器 ”选项卡,但是它指向了jQuery代码中的一行,所以我完全没有使用它至少我不知道如何 )。

可以有一个很好的解决方案 – 在DevTools中按下暂停,所以如果你点击那个红色按钮,DevTools跳转到当前执行的代码行(jQuery事件处理程序),你可以在经过一些痛苦的迭代后挖掘你的处理程序jQuery库)。 但有人用setInterval(... , 100)mouseover添加了很多横幅,让我没有机会在这里使用这个技巧……

(也许有一种方法可以从jQuery的深处获取一系列事件处理程序???)

所以,我需要找到该function集

$(’#my.red button’)。click(function(){/ * bla * /});

朋友,我相信应该有救援。

我需要一种极其节省时间的方法/技术,因为我需要每天执行数百次搜索。

PS:如果处理程序是使用$.live设置的呢?

Firebug 2.0在其HTML面板中有一个事件侧面板 ,如果启用了选项Show Wrapped Listeners ,它可以显示用户定义的函数。

显示Wrapped Listeners选项

包装的函数前面有一个箭头。