Jquery捕获选项卡+一些组合键

时间:2015-04-04 13:08:30

标签: javascript jquery

我怎样才能捕捉到tab+t与jQuery的组合?我在altshiftctrl找到了很多示例,因为事件对象包含特殊标记,以便了解是否按下了alt。但是标签没有这样的东西。

2 个答案:

答案 0 :(得分:1)

这应该有效。它有点复杂,可能更容易,但它工作正常。

JSFiddle: https://jsfiddle.net/spybhhxc/

var tabdown = false;
var tdown = false;

$(document).keydown(function(e) {
    if(e.which == 9) {
        tabdown = true;
    }
    if(e.which === 84)
    {
        tdown = true;
    }
    if(tabdown && tdown)
    {
        //do your thing
    }
});

$(document).keyup(function(e) {
    if(e.which == 9) {
        tabdown = false;
    }
    if(e.which === 84)
    {
        tdown = false;
    }
});

这提出了一个问题,因为一旦按Tab键,文档就会没有聚焦,因为tab键会导航到浏览器中的元素。使用altctrl等不与浏览器交互的内容会更好。

答案 1 :(得分:0)

我们可以按下一个tab键[tabPressed]变量,该键变量将在按键时设置为true,并在其key up事件中取消设置相同。我们将使用tab键按下[tabPressed]变量来检查在其他按键活动期间是否处于按下状态。标签键码为9.

jsfiddle link http://jsfiddle.net/e3Lveyj2/

 var tabPressed=false;
 function handleKeyDown(e) {
 var evt = (e==null ? event:e);
 if(evt.keyCode == 9){
    tabPressed=true;
}
 if ((tabPressed) && (evt.keyCode == 84))  { 
    alert ("You pressed 'Tab+t'")
}
}



function handleKeyUp(e) {
 var evt = (e==null ? event:e);

 if(evt.keyCode == 9){
    tabPressed=false;
}
}
document.onkeydown = handleKeyDown;
document.onkeyup = handleKeyUp;