我在我的一個網站上有一個可用性問題。我有一組選項卡,每個都包含一個表單。當您單擊標籤鏈接時,它會將焦點放在標籤內容正文中的第一個文本框。面向鼠標的人喜歡這個「功能」。問題在於面向鍵盤的用戶使用鍵盤上的TAB鍵通過選項卡。他們在他們想要查看的標籤上點擊輸入,點擊事件觸發並且標籤顯示,但焦點被賦予文本框,完全調整它們的標籤順序。因此,當他們再次點擊標籤時,他們想要轉到屏幕上的下一個標籤,但由於焦點已移到表單內,因此無法使用鍵盤輕鬆進入下一個標籤。jQuery點擊事件 - 如何判斷鼠標是否被點擊或輸入密鑰被按下?
因此,在點擊事件中,我需要確定它們是否實際上用鼠標按鈕點擊了它。這可能嗎?我第一次嘗試是這樣的:
$("#tabs li a").click(function(e) {
var tab = $(this.href);
if(e.keyCode != 13)
$("input:first", tab).focus();
});
但keyCode
始終爲0。which
屬性也始終爲0。請幫幫忙!
您可以通過在文本框中添加一個.focus()處理程序並添加一點邏輯來破解它。 – krasnerocalypse
@krasnericalypse錯誤,不是真的。一旦將焦點放在文本框/下拉框中,恢復就太遲了。 –
哈哈。這是困難的一個。 – krasnerocalypse