可能重复:
使用 jquery 的菜单的键盘导航
我使用 <ul> 创建了一个菜单.<li> 标记并在用户按下文本框中的 Enter 键时将其显示给用户.他可以使用鼠标选择菜单项目(在菜单中导航),但我也希望允许他使用键盘的向上/向下按钮从该菜单中选择项目.
I created a menu using <ul> <li> tags and showing it to the user when he presses Enter key in the textbox. He can select items of the menu (navigate in menu) using mouse but I want also to allow him to select items from that menu using up/dow buttons of the keyboard for example.
有没有办法使用 jQuery 或 CSS 来做到这一点?
Is it any way to do that using jQuery or 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> 元素也有背景图片.
Note: <li> element has a background image also.
工作中的jsFiddle
以下是如何处理循环选择:
Here is how to handle circular selection:
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;
}
这篇关于如何通过 <ul> 使用键盘导航<li>元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
如何检查重复的 CSS 规则?How to check for duplicate CSS rules?(如何检查重复的 CSS 规则?)
删除多个文件中的重复 CSS 声明Remove duplicate CSS declarations across multiple files(删除多个文件中的重复 CSS 声明)
如何复制 div onclick 事件?How can I duplicate a div onclick event?(如何复制 div onclick 事件?)
从谷歌驱动器打开 htmlopening html from google drive(从谷歌驱动器打开 html)
如何将视频从 Google 驱动器嵌入到网页?How to embed videos from Google drive to webpage?(如何将视频从 Google 驱动器嵌入到网页?)
如何在 iframe 中查看 Google Drive pdf 链接How to view Google drive pdf link in iframe(如何在 iframe 中查看 Google Drive pdf 链接)