如果没有文件或函数名称,如何找到对元素进行更改的函数?

时间:2014-10-06 21:54:16

标签: javascript jquery debugging firebug

我有一个大项目。有几十个JS文件。我页面上的元素附加了一个点击事件。我想编辑此点击事件,但首先我需要找到它的'档案&线。如何在不知道函数名称或文件名之前做到这一点?有没有办法在firebug中观察元素并记录正在执行的函数?

背景故事:

该元素在单击时添加.open类,并在用户单击其他任何内容时删除。我希望在mouseover上添加.open类,并在mouseout上删除。我想使用在click事件中调用的相同函数,但首先我需要找到它。

感谢。

2 个答案:

答案 0 :(得分:2)

如果您使用 jquery 添加事件,您可以在firebug的控制台中使用此代码找到事件的处理程序:

jQuery._data($(".someHTMLelement")[0], "events")

您将在“handler”属性下找到处理程序的位置,只需单击该函数即可跳转到代码中的相应行。

如果你不使用jquery ,而是使用本机addEventListener,你可以使用它:

getEventListeners($(".rs-btn")[1])

该函数将位于属性“listener”

答案 1 :(得分:0)

如果您既不知道文件名也不知道函数名,则可以使用Firebug的HTML panel's Break On Mutate功能。

可以使用工具栏按钮(Break On Mutate button)为所有元素启用此功能,也可以通过上下文菜单为特定元素和特定操作启用此功能。

启用该选项后,触发导致元素更改的JavaScript。然后,这将在发生更改的行停止脚本执行。