Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何找到以编程方式触发的Javascript事件的起源?_Javascript_Jquery_Extjs_Dom Events - Fatal编程技术网

如何找到以编程方式触发的Javascript事件的起源?

如何找到以编程方式触发的Javascript事件的起源?,javascript,jquery,extjs,dom-events,Javascript,Jquery,Extjs,Dom Events,我正在尝试调试一个场景,在提交按钮上按Enter键最终会导致在该按钮上触发“单击”事件。我只能假设click事件是通过编程方式触发的。在应用程序中,使用click事件fire显然是正确的行为,但是我需要追踪它的起源,因为我遇到了一些跨浏览器的问题 我使用的是jQuery和ExtJS,按键处理程序都是先通过jQuery,然后通过Ext,再到我们的代码。按钮是一个Ext对象。我已经浏览了所有的键处理程序,但我没有遇到任何fireEvent(“单击”)实例或任何解释单击事件来源的内容 我所知道的事件按

我正在尝试调试一个场景,在提交按钮上按Enter键最终会导致在该按钮上触发“单击”事件。我只能假设click事件是通过编程方式触发的。在应用程序中,使用click事件fire显然是正确的行为,但是我需要追踪它的起源,因为我遇到了一些跨浏览器的问题

我使用的是jQuery和ExtJS,按键处理程序都是先通过jQuery,然后通过Ext,再到我们的代码。按钮是一个Ext对象。我已经浏览了所有的键处理程序,但我没有遇到任何fireEvent(“单击”)实例或任何解释单击事件来源的内容

我所知道的事件按以下顺序发生:

  • 键控
  • 按键
  • 点击
  • 如果我抑制对keydown和keypress的处理,click事件仍然会激发

    单击处理程序上的调用堆栈没有告诉我事件来自何处,因此我求助于搜索代码库,并在以下实例上设置断点:

    • fireEvent('单击'
    • 触发器('click'
    • 初始事件(

    还有什么我可以搜索的吗?有没有更好的策略来调试Javascript事件的相互作用?

    jQuery可以使用方法
    click()触发一个click事件
    。请注意空括号。

    这无论如何都不是奇怪的行为。这是所有按钮元素上的默认行为,无论使用何种浏览器。好的,如果在按钮上按enter键,则不会触发keyup/keydown事件,因为该DOM元素上不存在它们

    在此实例中触发单击事件是完全正常的

    我已经设置了一个示例来演示这一点


    加载页面时,按钮将聚焦。如果按enter键,返回的键码为0。默认情况下,它会触发一个单击事件。

    这是一个好信息,但不幸的是,这不是罪魁祸首。我刚才做了一个简单的测试,发现了一些我没有预料到的东西,但现在似乎很明显。在简单测试页面上单击一个按钮,然后单击ing enter启动了一个点击事件。谢谢你的回答。我得出了这个结论,但我只留下了一条评论,因为我还没有冷静到回答我自己的问题。给你一点信任。没问题。很容易犯错误