Javascript 如何仅在用户向后而非向前切换时触发事件
在jQuery中,如何仅在用户向后而不是向前切换时触发事件Javascript 如何仅在用户向后而非向前切换时触发事件,javascript,jquery,keypress,Javascript,Jquery,Keypress,在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
$('.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");
}
});
这是我正在使用的代码,但它似乎不起作用。返回制表符(shift tab)时仍会触发第一个if语句
问题是当我点击shift tab to back tab时,tab事件也会触发,这就是问题所在
任何帮助或指导都将不胜感激。多谢各位
这是一个请试试后面的标签。请注意,当您在子菜单中的最后一个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");
}
});
你想达到什么目标?看起来您只是想打开选项卡上的子菜单,在这种情况下,您可以大大简化您的代码:您可以为我们设置一个选项卡吗?这两个事件都触发是什么意思?不,它们不是。我没注意到你不能在JSFIDLE中制表。。。但这两个事件都会触发。我认为后选项卡在后选项卡时会触发,但一旦有人删除shift键,tab forward events会触发将访问的选项卡放入数组并比较用户的行为。