0

问题:

为什么下面的代码不起作用?

问题:

我有一个由下拉菜单组成的菜单。(两级导航/ firefox)当我浏览网站时,它将专注于第一级导航。它不会进入该下拉列表的各个项目。当我使用 chrome 循环浏览时,它只会循环浏览菜单的前两个选项卡。

我正在尝试的代码:

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

菜单链接:http: //www.casa.gov.au

4

2 回答 2

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/中测试了它

于 2013-09-06T04:35:51.257 回答
0

编辑:修复了选择器

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

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

于 2013-09-06T02:20:12.877 回答