Pregunta

¿Hay una manera de probar JavaScript controladores de eventos de teclado (por keypress, keyup, eventos keydown)?

Sé que puedo declarar manejadores de eventos como este:

function keyUpEvHandler(e) {
    ... // code here
}

$('#myId').keyup(keyUpEvHandler);

y luego simplemente ejecutar esta función en pruebas de unidad, pero tendrá que preparar objeto argumento de evento a ser el mismo que pasa cuando se pulsa la tecla real:

var e = {keyCode: 70, ...};

¿Hay alguna manera de activar este evento y pasar código de la llave como un argumento o algo similar? Desafortunadamente jQuery gatillo () docs sin intentar cubrir eventos de teclado.

¿Fue útil?

Solución

Puede pasar datos arbitrarios a través del objeto de evento.

Los documentos:

var event = jQuery.Event("logged");
event.user = "foo";
event.pass = "bar";
$("body").trigger(event);

Lo que puede hacer:

var event = jQuery.Event("keyup");
event.keyCode = 72;
$(".selector").trigger(event);

De esta manera, el caso pasa al controlador (s) tendrá el keyCode ajustado a lo que quiera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top