当用户使用Tab键移动焦点时,我想捕捉哪个元素处于焦点上。例如,有一个表单,用户可以使用Tab键前进到下一个表单元素。我想知道哪个元素是焦点上的当前元素。
谢谢, 保罗
答案 0 :(得分:2)
对于许多事件类型,可以使用事件委托,其中一个事件在某个包含元素上捕获事件,因为它冒泡文档层次结构,然后建立事件源自的元素。不幸的是,focus
,blur
和
change
事件不会冒泡。
但是,在实现标准DOM事件模型的DOM实现中,可以改为使用捕获阶段,捕获阶段截取事件直到它将触发的元素。
这在(惊讶,惊讶)Internet Explorer(IE)中无效,即使在IE8中,它仍然没有标准事件模型的实现。但是,IE有自己的focusin
和focusout
个事件,做泡沫。
最终的结果是,像往常一样,必须编写一个代码来处理正确浏览器的工作方式,以及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(焦点相反)事件可用于更新变量,该变量说明当前哪个表单元素处于焦点。