Я использую jQuery 1.12. У меня есть стиль UL с элементами LI. Я использую приведенный ниже код, чтобы выбрать эти элементы, используя стрелки вверх или вниз на клавиатуре, когда DIV имеет фокус...
$(".select").bind('keydown', function(event) {
var currentElement = $(this).find(".select-options li.selected");
if (currentElement.length == 0) {
currentElement = $(this).find(".select-options li")[0];
$(currentElement).addClass("selected");
return;
} // if
var nextElement;
switch(event.keyCode){
// case up
case 38:
nextElement = $(this).find(".select-options li")[($(this).find(".select-options li").index(currentElement) - 1) % $(this).find(".select-options li").length];
break;
case 40:
nextElement = $(this).find(".select-options li")[($(this).find(".select-options li").index(currentElement) + 1) % $(this).find(".select-options li").length];
break;
}
$(this).find(".select-options li").removeClass("selected");
if(nextElement !== null) {
$(nextElement).addClass("selected");
}
});
Проблема заключается в том, что если вы постоянно нажимаете клавишу "вниз" (например), в конечном итоге вы не сможете увидеть выбранный элемент. Как настроить параметры так, чтобы выбранный элемент всегда был видимым? Скрипт, иллюстрирующий проблему, находится здесь - http://jsfiddle.net/sge8g5qu/1/.