jQuery:如何检测箭头键仅按某些元素

时间:2015-05-31 13:48:02

标签: javascript jquery scroll keydown onkeydown

我是jQuery的新手,我正试图找到一种方法来检测箭头键按下(仅上下)。 在线搜索时,我从这里发现了this post

这看起来非常好但是我想检测箭头键仅按当用户在具有某个类的元素上(即元素具有焦点)时,动态添加到页面。

具体来说,我想在焦点列表上按向上或向下箭头键时突出显示相应的列表项。

有没有办法可以实现这个并跨浏览器工作?

看起来这已经自动发生,但在我的情况下,它不能正常工作并且总是跳过列表项,这就是为什么我认为我可以单独定义它。

示例元素:

<ul class="myClass" id="someID">
   <li><a href="#">Value1</a></li>
   <li><a href="#">Value2</a></li>
   <li><a href="#">Value3</a></li>
</ul>

非常感谢您的帮助, 麦克

2 个答案:

答案 0 :(得分:3)

而不是

$(document).keydown(function(e) {
你的javascript代码中有

$(<selector>).keydown(function(e) {

其中<selector>指向您要跟踪的元素。

<强>更新

更好 - 因为你提到了动态添加的元素,所以使用事件绑定的委托结构:

$(document).on("keydown", ".<yourClassName>", function(e) {

答案 1 :(得分:0)

您可以使用标准

i32

机制并检查当前活动元素的类:

$('body').keyup(function(e){...})