javascript - 如何通过列表向下键或向上键以触发对事件侦听器内项目的关注?
问题描述
我正在尝试focus()
在特定元素节点上运行一个方法,具体取决于是否按下了向上箭头键或向下箭头键。我要关注的列表项是我正在侦听的兄弟节点的子节点,因为我希望焦点从搜索框(输入标签)转到兄弟节点的子节点。
当按下向下箭头键时,我将 firstChild 属性放在事件侦听器内的 searchSuggest 框中,但是,这将在focus()
每次按下第一个子项或列表项时运行该方法,而不是列表中的下一个兄弟项。
const d = document,
searchBox = d.getElementById("PFsearchBox"),
searchSuggest = d.getElementById("PFsearchSuggest")
searchBox.addEventListener("keydown", e => {
// up arrow
if (e.which === 38) {
e.preventDefault();
// select the last item in the suggestion list
searchSuggest.children[searchSuggest.children.length - 1].focus()
}
// down arrow
if (e.which === 40) {
e.preventDefault();
searchSuggest.firstChild.focus()
}
});
我希望当按下向下箭头键时,焦点从输入框转到 searchSuggest 节点中的第一个子列表项,然后每次按下向下箭头键时依次向下列表,反之亦然箭头键被按下。
解决方案
推荐阅读
- wordpress - Swiper 滑块在循环中未按预期工作:在 Wordpress 主题中为 true
- vba - MS ACCESS 中的 VBA 调度算法
- c# - SendGrid C#, 是否建议创建一次 SendGridClient 对象或为每个操作创建
- css - 如何使用媒体查询使网站适合移动视图
- python - 使用涉及列表中某些文件的过程进行循环?
- c++ - OpenCv 在 C++ 中从一维数组制作 Mat 图像的最快方法
- highcharts - 用两列垂直对齐高图中的图例
- sql - 我的 Postgres 插入或更新查询出了什么问题
- javascript - 漏斗图标签在外面
- javascript - 带有单个参数的 JavaScript new Date() 在 Glitch 上无法按预期工作