在使用jQuery開發(fā)頁面的過程中,鍵盤上下鍵的移動是非常常見的需求。下面介紹一種使用jQuery監(jiān)聽鍵盤事件來實(shí)現(xiàn)鍵盤上下鍵移動的方法。
$(document).keydown(function (event) { var keyCode = event.keyCode; if (keyCode == 38 || keyCode == 40) { // 上下鍵的keyCode是38和40 event.preventDefault(); // 阻止默認(rèn)行為(即滾動頁面) var current = $(".active"); if (keyCode == 38) { if (current.prev().length) { // 如果有上一個元素 current.removeClass("active"); current.prev().addClass("active"); } } else { if (current.next().length) { // 如果有下一個元素 current.removeClass("active"); current.next().addClass("active"); } } } });
上述代碼在整個文檔中監(jiān)聽鍵盤事件,當(dāng)用戶按下鍵盤上下鍵時,會觸發(fā)keydown事件。在事件處理函數(shù)中,首先獲取按下的鍵的keyCode,判斷是否是上下鍵。如果是上下鍵,則阻止默認(rèn)行為(即滾動頁面),接著獲取當(dāng)前被選中的元素,并判斷按下的是上鍵還是下鍵。如果是上鍵,就查找當(dāng)前元素的前一個兄弟元素,如果存在則將當(dāng)前元素的樣式切換為未選中狀態(tài),將前一個兄弟元素的樣式切換為選中狀態(tài);如果是下鍵,則查找當(dāng)前元素的下一個兄弟元素,如果存在則將當(dāng)前元素的樣式切換為未選中狀態(tài),將下一個兄弟元素的樣式切換為選中狀態(tài)。