2009-02-15 96 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。