输入元素左/右键泡

时间:2011-08-02 10:55:33

标签: javascript events

我有一个奇怪的问题,我在div元素中有一些输入元素。 div元素附加了一个事件处理程序来捕获左右键。 div元素还有一个tabIndex。

我希望的是当div元素被focsued时,我可以捕获左右键。如果按下左右键,我就可以取消事件(停止气泡并防止默认)。

但是现在左右键在输入元素中不起作用,而div元素处理按键并取消事件。

这是正常行为吗?如果是这样我该怎么办呢?

谢谢,

AJ

1 个答案:

答案 0 :(得分:1)

这是事件冒泡的问题。

我不知道你的目标浏览器是什么,但问题是:在某些情况下,事件首先从外部div捕获,而在其他情况下,它首先是内部div。 标准是事件正在下降,然后上升。

你需要你的div在冒泡阶段(up)捕获,使用yourdiv.addEventListener('keydown',doSomething,false)(将事件类型更改为你的,可能是keypress或其他东西)。

Here是一个有用的链接,可以比我更好地解释它。