Javascript jQuery选项卡和shift+;选项卡以显示导航
我试图在对子菜单中的父项进行Tab时显示子导航,然后在对子菜单进行Tab或shift+Tab时隐藏 这是我的JS。我有第一个和最后一个语句,但不能得到最后一个。我做错了什么Javascript jQuery选项卡和shift+;选项卡以显示导航,javascript,jquery,html,css,accessibility,Javascript,Jquery,Html,Css,Accessibility,我试图在对子菜单中的父项进行Tab时显示子导航,然后在对子菜单进行Tab或shift+Tab时隐藏 这是我的JS。我有第一个和最后一个语句,但不能得到最后一个。我做错了什么 //显示子导航 jQuery('.has child,.currenthas child').keydown(函数(e){ if(e.keyCode==9&&!e.shiftKey){ jQuery(this.children().show(); } }); //SHIFT+TAB按钮 jQuery(“.li子菜单:第一个
//显示子导航
jQuery('.has child,.currenthas child').keydown(函数(e){
if(e.keyCode==9&&!e.shiftKey){
jQuery(this.children().show();
}
});
//SHIFT+TAB按钮
jQuery(“.li子菜单:第一个子菜单”).keydown(函数(e){
if(e.keyCode==9&&e.shiftKey){
jQuery(this.parent().hide();
控制台日志(“选项卡优先”);
}
});
//选项卡按钮
jQuery('.li子菜单:最后一个子菜单').keydown(函数(e){
if(e.keyCode==9&&!e.shiftKey){
jQuery(this.parent().hide();
控制台日志(“最后一个选项卡”);
}
});代码>
-
-
-
-
-
像这样的东西
[显示当前时具有子菜单并隐藏同级。要不隐藏同级,只需在li.keydown
事件中删除.end()
之后的代码即可]
/*这里我只需将每个事件分配给一个变量,以便于实现*/
var myEvents={
点击:功能(e){
jQuery(this).children('ul').show().end().siplines('li').find('ul').hide();
},
向下键:功能(e){
e、 停止传播();
如果(e.keyCode==9){
if(!e.shiftKey&&jQuery('nav li').index(jQuery(this))==(jQuery('nav li').length-1))jQuery('nav li:first').focus();
else if(e.shiftKey&&jQuery('nav li').index(jQuery(this))==0)jQuery('nav ul:first>li:last').focus().blur();
}
},
键控:功能(e){
e、 停止传播();
如果(e.keyCode==9){
如果(myEvents.cancelKeyup)myEvents.cancelKeyup=false;
else myEvents.click.apply(这是参数);
}
}
}
jQuery(文档)
.on('click','li',myEvents.click)
.on('keydown','li',myEvents.keydown)
.on('keyup','li',myEvents.keyup)
//这是保持选项卡焦点正确所必需的
jQuery('nav li')。每个(函数(i){this.tabIndex=i;});
/*下面只是为了让带有子菜单的菜单更引人注目*/
每个函数(i){if(jQuery(this).children('ul').length)jQuery(this.addClass('highlight');})代码>
li ul{显示:无;}
.highlight>a{背景:黄色;}
按钮
-
-
-
-
-
-
-
-
像这样的东西
[显示当前时具有子菜单并隐藏同级。要不隐藏同级,只需在li.keydown
事件中删除.end()
之后的代码即可]
/*这里我只想