问题:
为什么以下代码不起作用?
问题:
我有一个包含下拉菜单的菜单。 (两级导航/ firefox)当我通过网站选项卡时,它将专注于导航的第一级。它不会归结为下拉列表中的各个项目。 当我使用chrome进行循环时,它只循环通过菜单的前两个选项卡。
我正在尝试的代码:
$('#cssmenu ul li').focus(function() {
$('#cssmenu li ul a').focus();
});
LINK OF MENU:http://www.casa.gov.au
答案 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/