2015-04-04 55 views
0

我怎样才能抓到,例如tab+t与jQuery的组合?我发现了很多alt,shiftctrl的例子,因为事件对象包含特殊标志以便了解是否按下了alt。但是没有这样的标签。jquery capture tab +一些组合键

+0

其实我想制作一些热键。我从asana.com那里获得了这个想法,他们在那里选择了快捷键的选项卡,似乎他们可以安全使用 – Victor 2015-04-04 13:14:56

回答

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之类的东西,你不会更好地使用浏览器。

0

我们可以通过按下[tabPressed]变量的tab键将其设置为true,然后在其按键事件中将其设置为true。我们将使用tab键按[tabPressed]变量来检查其他按键活动期间是否处于按下状态。该选项卡键码为9

的jsfiddle链接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;