问题:
为什么下面的代码不起作用?
问题:
我有一个由下拉菜单组成的菜单。(两级导航/ firefox)当我浏览网站时,它将专注于第一级导航。它不会进入该下拉列表的各个项目。当我使用 chrome 循环浏览时,它只会循环浏览菜单的前两个选项卡。
我正在尝试的代码:
$('#cssmenu ul li').focus(function() {
$('#cssmenu li ul a').focus();
});
菜单链接:http: //www.casa.gov.au
问题:
为什么下面的代码不起作用?
问题:
我有一个由下拉菜单组成的菜单。(两级导航/ firefox)当我浏览网站时,它将专注于第一级导航。它不会进入该下拉列表的各个项目。当我使用 chrome 循环浏览时,它只会循环浏览菜单的前两个选项卡。
我正在尝试的代码:
$('#cssmenu ul li').focus(function() {
$('#cssmenu li ul a').focus();
});
菜单链接:http: //www.casa.gov.au
要回答最初的问题,您的代码不起作用的一个原因是因为焦点事件<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/中测试了它
编辑:修复了选择器
$('#cssmenu > ul > li > a').focus(function () {
$(this).parent().find('ul li a').first().focus();
});
试试看。阅读 jQuery 的选择器:http ://api.jquery.com/child-selector/