2

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

“如果我点击这个红色按钮会发生什么?”

这意味着它无法将我指向杂乱代码中设置的事件处理程序。

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

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

可能有一个很好的解决方案 - 在 DevTools 中按下暂停,因此如果您单击那个红色按钮,DevTools 会跳转到当前执行的代码行(jQuery 事件处理程序),并且您可以在一些痛苦的迭代之后挖掘您的处理程序jQuery 库)。但是有人添加了很多带有setInterval(... , 100)andmouseover的横幅,让我没有机会在这里使用这个技巧......

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

所以,我需要找到设置的功能

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

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

我需要一种非常省时的方法/技术,因为我需要每天执行数百次这种搜索。

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

4

1 回答 1

1

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

显示包装的侦听器选项.

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

于 2014-06-21T00:11:20.003 回答