使用jquery关注ajax结果中的下一个链接

时间:2013-03-15 10:06:40

标签: jquery

我想使用向上/向下箭头键来选择搜索结果中的项目

然而,下一个链接不会集中,我做错了什么?

住在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();

解决了这个问题。

http://jsfiddle.net/JJDfL/4/

1 个答案:

答案 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();

此外,如果在函数完成时返回,则您的查询变量似乎是不必要的。