IE中的事件传播

event propagation in IE

本文关键字:传播 事件 IE      更新时间:2023-09-26

在一个简单的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"。但是我没有在任何地方的代码中使用它。有没有其他方法可以达到同样的效果?

这些事件没有被传播。它们是两个分开的事件。

keyPress是一个事件,keyDown是另一个事件。

没有办法停止从keyDown事件传播keyPress(没有带有标志或其他东西的自定义代码)。

事件从子元素传播到父元素。不能从一个事件类型转换到另一个事件类型