Вы уже что-нибудь пробовали?
Без конкретного решения, вот несколько вещей, которые помогут вам.
1) Привязать событие нажатия клавиши (например, к документу)
$(document).keydown(MyKeyupFunc);
2) Захватить нажатие клавиши вверх / вниз:
function MyKeyupFunc(event){
switch (event.keyCode) {
case 38: //keyup
//key down code
break;
case 40: //keydown
//key up code
break;
default:
return;
}
//stop event
event.preventDefault();
event.stopPropagation();
if ($.browser.msie) {
event.originalEvent.keyCode = 0;
event.originalEvent.cancelBubble = true;
event.originalEvent.returnValue = false;
}
}
3) Код вашего набора / нажатия клавиш будет включать в себя поиск того, что выбрано, и что является следующим / предыдущим элементом. Возможно, вам придется проверить, что на предмете также есть класс наведения.
Вам понадобится кое-что из выбора элементов навигации, поэтому вам нужно что-то, что jQuery сможет выбрать. Предложите добавить пустой CSS class="navigable"
для каждого, и таким образом вы можете выбрать все элементы, подлежащие навигации по клавиатуре:
var $navListitems = $("li.navigable");
Факторинг вашего видимого требования:
var $navListitems = $("li.navigable:visible");
4) Может быть, подумайте о сортировке, проверьте следующую ссылку
http://www.wrichards.com/blog/2009/02/jquery-sorting-elements/
Во всяком случае, это стартер. Я могу придумать еще многое, что вам нужно сделать, но я думаю, что это будет приключение для вас, чтобы попробовать себя.
Если у вас есть конкретные вопросы, я уверен, что люди будут рады помочь, если вы отправите сообщение обратно на форум: -)