我正在尝试调试在提交按钮上按Enter键最终导致在该按钮上触发“click”事件的情况。我只能假设click事件是以编程方式触发的。点击事件触发显然是应用程序中的正确行为,但我需要追踪其来源,因为我遇到了一些跨浏览器问题。
我正在使用jQuery和ExtJS,关键的新闻处理程序首先通过jQuery,然后通过Ext,然后到我们的代码。该按钮是一个Ext对象。我已经介绍了所有关键处理程序,并且我没有遇到任何fireEvent('click')实例或任何解释click事件来源的地方。
我所知道的事件按此顺序发射:
如果我禁止处理keydown和keypress,则click事件仍然会触发。
点击处理程序上的调用堆栈不会告诉我事件的来源,所以我使用搜索代码库并在以下实例上放置断点:
还有什么我可以搜索的吗?是否有更好的策略来调试javascript事件的相互作用?
答案 0 :(得分:1)
jQuery可以使用方法click()
触发点击事件。请注意空括号。
答案 1 :(得分:1)
这绝不是一种奇怪的行为。无论使用什么浏览器,它都是所有按钮元素的默认行为。 AFAIK,如果按下按钮,它将不会触发keyup / keydown事件,因为它们不存在于该DOM元素上。
在此实例中触发点击事件是完全正常的。
我已经设置了一个例子来证明这一点...
页面加载时,按钮将会聚焦。如果按Enter键,则返回的keyCode为0.默认情况下会触发单击事件。