2011-11-07 88 views
9

我想在div上獲得keydown事件。我使用JQuery keydown。很簡單。我怎樣才能在鉻上的div上獲得keydown事件?

但是,它不適用於Chrome。對於這個工作鉻,我必須設置tabindex = 0.

如果我這樣做,鉻放在我的div周圍一個醜陋的橙色邊框。

有沒有辦法使這項工作在鉻沒有醜陋的橙色邊框?

+0

我問,無論你走向何處,正確的方式與此。要有一個'keydown'事件,理論上你需要把重點放在你的元素上,否則你會關注什麼? –

+0

在div上怎麼會有一個keydown事件?我認爲只有文本輸入和textareas可以被鎖定 – frenchie

回答

16

Keydown事件只發送到具有焦點的HTML元素。不同瀏覽器之間的可聚焦元素會有所不同,但設置tabindex屬性的元素可以始終在大多數瀏覽器中獲得焦點。

您已經爲div元素設置了tabindex,以便它可以聚焦並可以接收鍵盤事件。您的問題是Google Chrome上當前關注元素的默認大綱。

要改變大綱(如上所述,「醜陋的橙色邊框」),使用僞CSS類:焦點和CSS屬性大綱。以下示例將在所有元素具有焦點時刪除輪廓:

*:focus 
{ 
    outline: none; 
} 

希望得到這個幫助。

+1

只需注意一點,就可訪問性而言,設置ouline:none universal *是不推薦的。請參閱http://webaim.org/blog/plague-of-outline-0和http://www.outlinenone.com – jbyrd