我想使用向上/向下箭头键来选择搜索结果中的项目
然而,下一个链接不会集中,我做错了什么?
住在http://jsfiddle.net/JJDfL/1/
$('#hitbox').on('keyup','a', function(event) {
//focus prev/next with arrows, enter and escape
if (event.keyCode == 27) {
$('#hitbox').slideUp(100);
$('#searchbox').val('');
$('#searchbox').focus();
}
if(event.keyCode == 40) {
var focused = $(':focus');
focused.parent().next().focus();
alert(focused.parent().next().html()); //returns '<a href="asdf">bb</a>'
}
});
更新:
现在有效:
focused.parent().next().find('a').focus();
解决了这个问题。
答案 0 :(得分:1)
编辑:
有几个问题,但我编辑了你的小提琴,它应该适合你:http://jsfiddle.net/JJDfL/6/
问题1: 当您按下时(选择第一个链接后),您没有选择正确的元素。修复:
$(this).parent().next().find("a").focus();
注意.find(“a”)选择&lt; a&gt; &lt; p&gt;内的元素你也可以使用儿童(“a”)方法。
问题2: 你没有停止事件的传播,这使事件触发了最近关注的项目,并通过以下方式解决:
event.stopPropagation();
此外,如果在函数完成时返回,则您的查询变量似乎是不必要的。