我有一个奇怪的问题,我在div元素中有一些输入元素。 div元素附加了一个事件处理程序来捕获左右键。 div元素还有一个tabIndex。
我希望的是当div元素被focsued时,我可以捕获左右键。如果按下左右键,我就可以取消事件(停止气泡并防止默认)。
但是现在左右键在输入元素中不起作用,而div元素处理按键并取消事件。
这是正常行为吗?如果是这样我该怎么办呢?
谢谢,
AJ
答案 0 :(得分:1)
这是事件冒泡的问题。
我不知道你的目标浏览器是什么,但问题是:在某些情况下,事件首先从外部div捕获,而在其他情况下,它首先是内部div。 标准是事件正在下降,然后上升。
你需要你的div在冒泡阶段(up)捕获,使用yourdiv.addEventListener('keydown',doSomething,false)
(将事件类型更改为你的,可能是keypress或其他东西)。
Here是一个有用的链接,可以比我更好地解释它。