2012-04-09 8 views
9

Buscando una forma de simular una pulsación de tecla múltiple con jQuery. Por ejemplo, ALT + F1 (manteniendo presionado alt y presionando F1).Forma de desencadenar varios eventos de pulsación de tecla y retención en jQuery

he logrado simular la pulsación de tecla F1 gracias a: Definitive way to trigger keypress events with jQuery

Buscando algo como esto:

$(".f1").click(function() { 
    var e = jQuery.Event("keydown"); 
    e.keyCode = 18; // ALT key pressed 
    // while ALT key is pressed, hit the F1 Key 
    $("input").trigger(e, function(){ 
     var e = jQuery.Event("keydown"); 
     e.which = 112; // F1 key 
     $("input").trigger(e); 
     }); 
}); 
+1

Eche un vistazo a esta publicación. Espero eso ayude. http://stackoverflow.com/questions/4604057/jquery-keypress-ctrlc-or-some-combo-like-that –

Respuesta

18

Con las teclas de modificación alt, ctrl y shift, se puede utilizar el evento modificadores específicamente para ellos:

$(".f1").click(function() { 
    var e = jQuery.Event("keydown"); 
    e.which = 112;  // # F1 code value 
    e.altKey = true;  // Alt key pressed 
    $("input").trigger(e); 
}); 

Demostración: http://jsfiddle.net/jtbowden/2kcrg/

+0

rápido y trikly –

2
  1. no se puede simular por completo los eventos de pulsación de tecla, solo se pueden desencadenar controladores de Javascript vinculados a ellos. Así que considere simplemente escribir una función que encapsule lo que desea que haga su pulsación de tecla, haciendo que el manejador de pulsaciones de teclas llame a esa función, y "simule" la pulsación de tecla en otros lugares simplemente llamando a la misma función.
  2. si realmente debe simular ALT-F1 y similares, es necesario establecer otras propiedades en caso keypress (por ejemplo altKey o metaKey), y/o el primer evento de disparo keydown para la prensa de la tecla de modificación (en jQuery/firefox presionando ALT me da un evento keydown con e.which == 18). Al final del día, solo necesita crear los mismos eventos a los que responden sus controladores.
+0

Una buena lectura señor. –

Cuestiones relacionadas