2015-04-04 51 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;