我怎么能触发一个事件只有当用户是向后而不是向前的选项卡
How can I trigger an event ONLY when the user is tabbing backwards and NOT forward
在jQuery中,如何在用户后退而不是前进时触发事件?
$('.menu-item-has-children a').keydown(function (e) {
if(e.which === 9 && (!e.shiftKey)){
console.log('Tabin forward');
$('.sub-menu li:last-child').focusout(function() {
console.log('check it out');
$(this).parent().parent().removeClass('hover');
});
}
else if (e.which === 9 && e.shiftKey) {
$(this).parent().removeClass('hover');
console.log("back Tab removed");
}
});
这是我正在使用的代码,但它似乎不工作。第一个if语句在回制表符(shift制表符)时仍然会触发。
问题是,当我按下shift tab到后退tab时,tab事件也会触发,这就是问题所在。
任何帮助或指导将不胜感激。谢谢你。
这是一个JSFiddle,请尝试向后键。注意,当你在子菜单的最后一个LI上后退标签时,它是有效的。因为两个事件都触发....
可能是您将keydown事件绑定到特定元素,而不是将整个文档作为一个整体?
我已经简化了你要做的事情,它作为一个独立的代码片段工作:
$(document).keydown(function (e) {
if(e.which !== 9) return false;
if(e.shiftKey){
console.log('back Tab removed');
}else{
console.log("Tabin forward");
}
});
你想达到什么目标?看起来你只是想在选项卡上打开子菜单,在这种情况下,你可以大大简化你的代码:http://jsfiddle.net/X3cLb/4/
相关文章:
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 我们如何在互联网断开连接或用户关闭选项卡/浏览器时调用注销servlet
- 如何检测用户是否在同一会话中打开了多个窗口或选项卡
- PayPal按钮是否有一个简单的选项,其中金额基于一些用户输入
- 在用户关闭/更改移动浏览器选项卡之前进行检测
- 计算用户从多个文件中选择的选项数量
- 询问用户何时尝试关闭浏览器选项卡
- 在Chrome for iOS中,附加到用户代理字符串的唯一选项卡ID
- 管理socket.io中的多个选项卡(但为同一用户)
- 如何防止用户使用浏览器选项禁用脚本
- 当用户在选择框中选择选项时,使用window.location.href重定向用户只会更改导航器中URL的最后一位
- 当用户关闭浏览器选项卡时,如何使用 PHP 或 javascript 从我的站点注销用户
- 用户界面先前选择的选项选择更改
- 读取一个本地文件,编码为base64,我想给用户一个将结果保存到文件的选项
- 当用户单击时,在新选项卡中打开链接
- 多选项卡LocalStorage单用户用例
- 如何更改用户选项更改时中的Onchange事件中Visual Composer上的按钮(选择选项)
- PHP:如何根据数百个用户选项提供自定义内容
- 如何从用户选项url匹配在Content_Script
- 表单动作改变javascript用户选项选择