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 ,它可以显示用户定义的函数。
。
包装的函数前面有一个箭头。