捕捉标签键导航

时间:2009-10-24 03:35:08

标签: javascript keyboard tabs

当用户使用Tab键移动焦点时,我想捕捉哪个元素处于焦点上。例如,有一个表单,用户可以使用Tab键前进到下一个表单元素。我想知道哪个元素是焦点上的当前元素。

谢谢, 保罗

3 个答案:

答案 0 :(得分:2)

对于许多事件类型,可以使用事件委托,其中一个事件在某个包含元素上捕获事件,因为它冒泡文档层次结构,然后建立事件源自的元素。不幸的是,focusblurchange事件不会冒泡。

但是,在实现标准DOM事件模型的DOM实现中,可以改为使用捕获阶段,捕获阶段截取事件直到它将触发的元素。

这在(惊讶,惊讶)Internet Explorer(IE)中无效,即使在IE8中,它仍然没有标准事件模型的实现。但是,IE有自己的focusinfocusout个事件,泡沫。

最终的结果是,像往常一样,必须编写一个代码来处理正确浏览器的工作方式,以及IE的工作方式。

幸运的是,这是quirksmode.org的ppk(又名Peter-Paul Koch)已经完成了艰苦工作的案例之一:他的文章 Delegating the focus and blur events 应该告诉你所需要的一切了解,并提供有关事件委派如何运作的简洁说明。

答案 1 :(得分:1)

在表单元素上使用onFocus事件,所以

<form>
   <input id="fred" type="text" onFocus="alert('focused this');"/>
</form>

结帐http://www.w3.org/TR/html4/interact/scripts.html#adef-onfocus

答案 2 :(得分:0)

有与焦点相关的javascript事件。 onfocus和onblur(焦点相反)事件可用于更新变量,该变量说明当前哪个表单元素处于焦点。