【发布时间】:2010-05-05 15:33:55
【问题描述】:
我将从一些背景知识开始,希望能帮助我的问题更有意义。
我正在为电视开发应用程序。这个概念很简单,基本上是通过在电视的视频平面上覆盖浏览器来实现的。现在作为电视,没有鼠标或额外的指点设备。所有交互都是通过遥控器完成的。因此,用户需要能够直观地分辨出他们当前关注的元素。为了指示元素已聚焦,我目前在元素上附加了一个彩色透明图像以指示焦点。
现在,当用户按下箭头键时,我需要根据按下的键关注正确的元素来做出响应。因此,如果按下向下箭头,我需要关注 DOM 树中的下一个可聚焦元素(可能是子元素或兄弟元素),如果它们按下向上箭头,我需要响应前一个元素。这实质上将模拟浏览器内的空间导航。
我目前正在为任何应该能够接收焦点的 DOM 元素设置一个属性 (focusable=true)。我想做的是确定上一个或下一个可聚焦元素(即属性focusable = true)并将焦点应用于元素。
我希望遍历 DOM 树以确定下一个和以前可聚焦的元素,但我不确定如何在 JQuery 中或一般情况下执行此操作。
我倾向于尝试使用 JQuery 树遍历方法,例如 next()、prev() 等。您会采取什么方法来解决此类问题?
谢谢
【问题讨论】:
-
我们可以获取一些示例 HTML 吗?
-
我建议将 CSS 类设置为“可聚焦”而不是属性,除非您选择 HTML5“数据”属性样式。
-
出于好奇,为什么这两种方式都重要,因为两者本质上都是为了将元素标记为可聚焦的。
-
因为它不是元素的实际有效属性。
标签: jquery dom navigation