在焦点上,专注于另一个元素jquery

时间:2013-09-06 02:02:27

标签: jquery html css

问题:

为什么以下代码不起作用?

问题:

我有一个包含下拉菜单的菜单。 (两级导航/ firefox)当我通过网站选项卡时,它将专注于导航的第一级。它不会归结为下拉列表中的各个项目。 当我使用chrome进行循环时,它只循环通过菜单的前两个选项卡。

我正在尝试的代码:

$('#cssmenu ul li').focus(function() {
  $('#cssmenu li ul a').focus();
});

LINK OF MENU:http://www.casa.gov.au

2 个答案:

答案 0 :(得分:1)

要回答原始问题,您所使用的代码无效的一个原因是因为焦点事件会触发<a>行项目中的#cssmenu标记,但您正在附加焦点监听器到<li>代码。

这可能会完成焦点事件的原始意图,但可能无法解决标签跳过问题:

$(function(){
  $('#cssmenu ul li a').focus(function() {
    var parentLi = $(this).parent();
    if(parentLi.find("ul").length > 0){
      parentLi.find("ul li:first a").focus();
    }
  });
});

我在这个jsFiddle http://jsfiddle.net/ryKZu/3/

中测试了它

答案 1 :(得分:0)

编辑:修正了选择器

$('#cssmenu > ul > li > a').focus(function () {
    $(this).parent().find('ul li a').first().focus();
});

试试吧。阅读jQuery的选择器:http://api.jquery.com/child-selector/