2011-06-20 93 views
12

En pocas palabras, mi problema es que me gustaría para ejecutar el efecto de Esc botón por una línea de Javascript, por ejemplo, ejecutar un onclick efecto de la tecla Esc . ¿Cómo puedo hacerlo?Ejecutar onclick de la tecla ESC

[Lo que tengo es un proceso de carga en una caja de jQuery, así que me gustaría que cuando la carga va a terminar, la función de escape se ejecutará automáticamente para cerrar el cuadro]

+1

¿No hay un método al que pueda llamar para cerrar el cuadro de diálogo? –

+0

@HAMZA ¿Podría decirnos cómo ha ayudado la respuesta seleccionada? Para mí, la pregunta es sobre 'emular un golpe de tecla' (tecla 'esc' en particular), mientras que la respuesta de @Nathan es ** capturar ** la tecla 'esc', lo que requiere que el usuario lo escriba manualmente. La respuesta aceptada debería haber sido la de @Juan. ¡O eso, o OP ha hecho la pregunta equivocada! – bPratik

+0

@bPratik Si ve mi comentario en la respuesta aceptada, esa respuesta probablemente no funcionaría, ya que depende de otro código que escuche el evento 'escapeKeyPressed'. Creo que el OP solo quería saber cómo cerrar el diálogo, y el comentario de Nathan ('$ ('# myDialog'). Trigger ('dialogClose')') mostró al OP cómo hacerlo. –

Respuesta

2

Este código funciona para mí

$(document).keyup(function(e) {  
    if(e.keyCode== 27) { 
     alert('Esc key is press'); 
    } 
}); 
+2

Esto es detectar, no simular presionar la tecla. –

14

Sé que es una vieja pregunta. Sin embargo, si alguien aterriza en aquí en la búsqueda, que puede ayudar:

En primer lugar, activa el evento en el elemento deseado (o documento),

$('a[name=close]').click(function(){ 
    var e = jQuery.Event("keyup"); // or keypress/keydown 
    e.keyCode = 27; // for Esc 
    $(document).trigger(e); // trigger it on document 
}); 

Y luego, tener un oyente keyup en el documento:

// Esc key action 
$(document).keyup(function(e) { 
    if (e.keyCode == 27) { // Esc 
     window.close(); // or whatever you want 
    } 
}); 
Cuestiones relacionadas