Как перемещаться по клавиатуре через элемент <ul> <li>
Возможный дубликат:
Навигация по клавиатуре для меню с помощью jquery
Я создал меню, используя теги <ul> <li>
и показывая его пользователю, когда он нажимает клавишу Enter
в текстовом поле. Он может выбирать элементы меню (перемещаться по меню) с помощью мыши, но я хочу также позволить ему выбирать элементы из этого меню, используя кнопки вверх/вниз на клавиатуре, например.
Можно ли это сделать с помощью jQuery или CSS?
Мое меню имеет следующую структуру:
<div class="services">
<div class="items">
<ul>
<li class="mail-icon"><a href="#" id="mail"><?php echo $langmsg['mail']; ?></a></li>
<li class="forum-icon"><a href="#" id="forum"><?php echo $langmsg['forum']; ?></a></li>
<li class="chat-icon"><a href="#" id="chat"><?php echo $langmsg['chat']; ?></a></li>
</ul>
</div>
</div>
Примечание: элемент <li>
также имеет фоновое изображение.
Ответы
Ответ 1
Работа jsFiddle
Вот как обрабатывать круговой выбор:
if (e.keyCode == 38) { // up
var selected = $(".selected");
$(".services li").removeClass("selected");
// if there is no element before the selected one, we select the last one
if (selected.prev().length == 0) {
selected.siblings().last().addClass("selected");
} else { // otherwise we just select the next one
selected.prev().addClass("selected");
}
}
CSS
.services li.selected {
background-color: grey;
}
Ответ 2
Это уже возможно, только с HTML, с клавишей "tab", затем клавишей "Enter". Вы можете удвоить свой стиль CSS a:hover
с помощью a:focus
, который выделит эту возможность =)