【发布时间】:2015-09-30 12:38:53
【问题描述】:
在一个简单的 HTML 页面中,对于下面的代码,
<ul>
<li id='testlist' style='border: 1px solid #2E2E2E;width:100px;height:100px;' onkeydown= "alert('kd');" onkeypress="alert('kp');" tabindex='0'>
Click me
</li>
</ul>
当我按下“ENTER”(重点放在 li 元素上)时,首先弹出“kd”,然后弹出“kp”。由此我推断通常onKeyDown()首先执行,然后是onKeyPress()。这意味着从按键到按键的事件传播正常发生。
但在我的项目中,对于相同的代码,这种流程不会发生。流程以“kd”停止。
事件传播通过 onKeyDown() 停止而不移动到 onKeyPress() 的可能原因是什么
我怀疑实现这种情况的可能方法是什么。 IE。停止事件传播。我知道的一种可能性是“stopPropagation”。但我没有在任何地方的代码中使用它。有没有其他可能达到同样的效果。
【问题讨论】:
-
您已经回答了自己的问题,因为您已经证明此代码有效,因此它必须是项目中其他地方的某些代码阻止它。不看代码,很难说。
-
我完全同意你的看法。我的疑问是实现这种情况的可能方法是什么。 IE。停止事件传播。我知道的一种可能性是“stopPropagation”。但我没有在任何地方的代码中使用它。
标签: javascript