如何找到哪个 Javascript 触发或处理事件?

How to find which Javascript fires or handles an event?

我正在开发 HTML5 应用程序框架,运行 通过 SAP JEE 应用程序服务器,为公司及其内联网和外联网站点构建。它基于网格框架“Semantic UI”,此外还包含很多(也是第三方)Javascript.

我目前正在检查一个错误,当页面向下滚动时,单击菜单中的特定图标会使页面以某种方式再次向上滚动。

由于周围有这么多 Javascript,我目前正在努力寻找导致这种奇怪行为的 JS 代码片段。

我已经阅读了 this post here,并且了解了 Firebug 中的事件记录和 Chrome 中的检查事件处理程序,但这对我没有真正的帮助。

我发现使用:

$(<my Elem>).on('click', function(event){
    event.preventDefault();
})

我可以阻止滚动,但我仍然没有找到它的原因。

关于如何找到这个问题的真正原因,有人有更多建议吗?

此行为可能是由多种不同原因引起的。其中一个经常被忽视的是 links like <a href="#">Some JavaScript Handler</a>.

当 JavaScript 处理程序没有正确处理事件时(例如通过调用 event.preventDefault(),HTML link 除了 JavaScript 处理程序。大多数浏览器通过转到页面顶部来将 link 处理为空锚标记 #。当使用空 href 属性时可以很容易地避免这种情况,例如 <a href>Some JavaScript Handler</a>.