2013-05-14 57 views
4

我目前正在學習jQuery對話框,並希望在我的項目中使用它。我想將tabindex添加到對話框中的切片。但是當我選中對話框中的最後一個元素時,焦點會轉移到別處。保持選項卡焦點內的jQuery對話框

我想將焦點回到第一個元素時,我的最後一個元素的標籤。有沒有辦法在對話框中保持焦點?

謝謝!你想跳過任何這樣的元素

回答

0

禁用Tab鍵:

$("#element").attr("tabIndex", -1); 
+0

問題的這種解決方案時,關閉對話框,所有那些已被改變爲元素TABINDEX -1將不再tabbable。因此,如果對話框下面有一個表單,它將不再像打開對話框之前那樣工作。 –

6

忽略默認選項卡行動,並把焦點回到對話框中的第一個元素的最後一個元素添加按鍵事件。

下面的示例假定的最後一個元素是last_element_id和第一是first_element_id

$('#last_element_id').on('keydown', function(e) { 
    if ((e.keyCode || e.which) == 9) { 
     $('#first_element_id').focus();  
     e.preventDefault(); 
    } 
}); 
+0

使用'e.which'已經足夠了,因爲jQuery已經爲我們規範了這一點。 –

0

任何負面的標籤索引應該被關注所以只是否定了現有值停止元素,然後把元素時回Tab順序刪除負。

例如 10 Tab鍵索引改變爲-10,然後返回到10