2009-02-15 94 views
9

我正在研究一些需要焦点的标签的JavaScript。我希望能够使用<div />标记,但<div />标记无法获得焦点。关注非输入/锚点元素?

它看起来像唯一可以获得重点的元素是<input />标签和<a />标签。有没有其他方法可以让元素获得不是<input /><a />标签的焦点?

我不能使用<a /><input />标签,因为我需要能够把内容标签的内部,既没有这些标记将工作,除非有一种方法可以让嵌套<a />标签,但我对此表示怀疑,因为这goes against the standard。我试图找出一种方法来允许<div />标签(或任何其他容器元素)获得焦点。

回答

9

你是什么意思“可以专注”?任何DOM元素都可以设置为接收大量JavaScript事件,包括click事件。

还是你的意思是“可以用键盘选项卡”?如果是这样,并且您不能使用a标签作为您的容器,请在您的元素上尝试tabindex property。我不确定它是如何跨浏览器的,但至少在你自己编写javascript中的标签式UI之前尝试一下。

+0

任何DOM元素都可以接收大多数事件,但不会收到“焦点”事件,这似乎是针对特定元素保留的,这些元素可能因浏览器而异。尽管如此,“tabindex”属性似乎在诀窍上有所作为。 – 2009-02-15 22:21:25

0

书签是要走的路。

开始您的内容与

<a href="#anchor"> 
0

有点一种解决方法,而不是语义正确的,但是......

a#foo { display: block; } 
a#foo:hover { cursor: default; } 

然后使用JavaScript拦截上a#foo onClick事件并返回false。