我怎样才能捕捉到tab+t
与jQuery的组合?我在alt
,shift
和ctrl
找到了很多示例,因为事件对象包含特殊标记,以便了解是否按下了alt。但是标签没有这样的东西。
答案 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键会导航到浏览器中的元素。使用alt
或ctrl
等不与浏览器交互的内容会更好。
答案 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;