Si se preocupan por la y también debe mantener presionada una tecla y tocar otra (por ejemplo: Shift + DEL, DEL, DEL ...), sin tener que levantar la primera tecla para que el evento vuelva a disparar ... He modificado @ El [fiddle] comentario de BlakePlumm que extendió el comentario de @ lu1s sobre la respuesta de @ ParthThakkar.
Además, el uso de .on() de jQuery le permite escuchar la secuencia de teclas solo en ciertos elementos. Cambie 'cuerpo' a 'input.selector' o cualquier otra cosa.
var map = [];
var down = [];
$(document).on('keydown','body', function(e) {
if(!map[e.which]){
down.push(e.which);
if(down[0] === 68 && down[1] === 69 && down[2] === 86) {
console.log('D + E + V');
} else if(down[0] === 16 && down[1] === 46) {
console.log('SHIFT + DEL');
}
/* more conditions here */
}
map[e.which] = true;
}).keyup(function(e) {
map[e.which] = false;
/* important for detecting repeat presses of
last key while holding first key(s)
(can be shortened. see fiddle) */
var len = down.length;
while (len--) {
if(down[len] === e.which) down.splice(len,1); //removes only the keyup'd key
}
$('.alert').html('');
});
pensamientos adicionales: Si sólo un poco importa el orden - es decir, las primeras teclas sólo tiene que ser hacia abajo, siempre y cuando su clave principal evento de la cocción se pulsa el pasado (cosas como CTRL + SHIFT + TAB, TAB, TAB), agregar esta condición:
else if(down.length>2) {
if($.inArray(68,down)!=-1 && $.inArray(69,down)!=-1 && down[2] === 86) {
$('.alert').html('A hacky D+E+V was pressed');
}
}
violín con más opciones gloriosos y demostración en vivo: - http://jsfiddle.net/kstarr/4ftL1p3k/
El código de tecla puede representar solo una clave. Intenta usar una combinación de keydown + keyup + flags para detectar esto. – yent
posible duplicado de [¿Puede jQuery .keypress() detectar más de una clave al mismo tiempo?] (Http://stackoverflow.com/questions/4954403/can-jquery-keypress-detect-more-than-one-key -al mismo tiempo) –
Considere cambiar la respuesta aceptada a [this] (http://stackoverflow.com/a/35249618/3853934). Presenta un enfoque más moderno y general. –