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

时间:2016-04-26 13:37:04

标签: javascript jquery html javascript-events developer-tools

我正在开发一个HTML5应用程序框架,由SAP JEE应用程序服务器运行,为公司及其内部网和外部网站构建。它基于网格框架" Semantic UI"除此之外还包含很多(也是第三方)Javascript。

我目前正在检查一个错误,当页面向下滚动时,单击菜单中的特定图标会使页面以某种方式再次向上滚动。
由于存在大量的Javascript,我目前正在努力寻找JS代码片段,这导致了这种奇怪的行为。

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

我发现使用

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

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

有没有人就如何找到真正的原因提出更多建议?

1 个答案:

答案 0 :(得分:1)

此行为可能由多种原因引起。其中一个经常被忽视的是像<a href="#">Some JavaScript Handler</a>这样的链接。

当JavaScript处理程序未正确处理事件时(例如,通过调用event.preventDefault(),除了JavaScript处理程序之外,还将遵循HTML链接。大多数浏览器处理指向空锚标记的链接{{1}转到页面顶部。使用#之类的空href属性时,可以轻松避免这种情况。