Come il mio succo scaduto (nessuno stava usando :() ho deciso di aggiornare la risposta con più soluzioni 2017. Controlla qui sotto.
Puoi usare il mio plug-in per jQuery per rilevare le scorciatoie.
'fondamentalmente eventi e di cache di ottenere ciò che si premono i tasti al momento. Se tutti i tasti sono premuti spara funzione.
https://github.com/maciekpaprocki/bindShortcut (scaduto!)
Yo Hai una piccola spiegazione su come usarlo nel file readme. Spero che questo ti aiuti. Feedback più che apprezzato.
Edit 2017:
E 'il 2017 e non abbiamo bisogno di plugin jQuery per risolvere cose del genere.In breve avrete bisogno di qualcosa di simile:
let pressed = {};
document.addEventListener('keydown', (event) => {
pressed[event.key] = true;
});
document.addEventListener('keyup', (event) => {
delete pressed[event.key];
});
//and now write your code
document.addEventListener('keydown', (event) => {
if(pressed[firstKey]&&pressed[secondKey]){
//dosomething
}
});
browser più vecchi potrebbero avere alcune stranezze, però da IE9 tutto dovrebbe funzionare bene, tranne gli importi marginali di sistemi operativi che non supportano la delega evento (super vecchio ubuntu etc.). Non c'è modo di risolverlo in quanto non è questo il problema del browser.
Ci sono alcune stranezze nei nuovi Mac connessi a chiavi booleane come ad esempio il blocco delle maiuscole.
Per saperne di più: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names_and_Char_values
fonte
2014-02-03 08:04:22
Simpatico script, sono riuscito a ottenere solo 6 chiavi allo stesso tempo massimo quando i loro codici char erano distanti tra loro (2 o più differenze). ps. perché cancellare la chiave e non impostarla solo su false? – jerone
@jerone Immagino di non volere che l'oggetto ingombra con una cronologia di tutti i tasti, e salverà alcune iterazioni nel ciclo 'printKeys'. Ma in pratica hai ragione, è una piccola differenza. –
Posso anche fare circa 7 tasti, tuttavia per quello che voglio (tasti freccia) ci sono alcune combinazioni che permettono o 3 o 2, ma mai 4 ... interessante – ajax333221