我的html包含元素列表。我想使用箭頭鍵選擇元素。如何在javascript中使用keyarrows獲取元素的焦點
這是我的代碼:[http://jsfiddle.net/T8S7c/]
我想什麼是preesing重點需要在像懸停效果選定元素的鍵(例如,如果我按首次Ambaji具有向下鍵以焦點)
我知道關鍵事件的代碼,但我不知道如何獲得關鍵的焦點。
誰能幫我在這
我的html包含元素列表。我想使用箭頭鍵選擇元素。如何在javascript中使用keyarrows獲取元素的焦點
這是我的代碼:[http://jsfiddle.net/T8S7c/]
我想什麼是preesing重點需要在像懸停效果選定元素的鍵(例如,如果我按首次Ambaji具有向下鍵以焦點)
我知道關鍵事件的代碼,但我不知道如何獲得關鍵的焦點。
誰能幫我在這
我的策略來解決,這將是通過鏈接的數組指定焦點的順序,以及具有某些變量指定哪些環節應該是關注的焦點。
var order = new Array("l1", "l2", "l3", "l4");
var current = -1;
function updateCurrent(inc) {
current = (current + inc) % order.length;
current = Math.max(current, 0);
}
document.onkeydown = function(evt) {
evt = evt || window.event;
switch (evt.keyCode) {
case 38:
updateCurrent(-1);
document.getElementById(order[current]).focus();
break;
case 40:
updateCurrent(1);
document.getElementById(order[current]).focus();
}
};
謝謝邁克。這是工作,但有一個小的幫助,當我第一次按下下拉鍵時,它正在聚焦第二個元素 – 2013-03-26 11:08:47
立即嘗試(初始'current'設置爲'-1')。 – Mikke 2013-03-26 11:10:13
我知道了非常感謝 – 2013-03-26 11:12:56
更新了腳本。看看這個。小提琴:http://jsfiddle.net/T8S7c/6/
var myLinks = document.getElementsByTagName("a");
var myLinksIndex = 0;
myLinks[myLinksIndex].focus();
document.onkeydown = function(evt) {
evt = evt || window.event;
switch (evt.keyCode) {
case 38: // Up arrow
if(myLinksIndex > 0){myLinks[-- myLinksIndex].focus();}
break;
case 40:// Down arrow
if(myLinksIndex < myLinks.length){myLinks[++ myLinksIndex].focus();}
break;
}
};
是否允許jquery? – yogi 2013-03-26 10:47:07
是的jQuery允許 – 2013-03-26 10:53:27
爲什麼不使用tabindex? – Grumpy 2013-03-26 10:57:27