Как тестировать события клавиатуры jQuery?

есть ли способ проверить обработчики событий клавиатуры JavaScript (для keypress, keyup, keydown событий)?

Я знаю, что могу объявить обработчики событий следующим образом:

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

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

а затем просто запустите эту функцию в модульных тестах, но мне придется подготовить объект аргумента события таким же, как и переданный при нажатии фактической клавиши:

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

есть ли способ вызвать это событие и передать код ключа в качестве аргумента или чего-то подобного? К сожалению jQuery trigger () docs не охватывает события клавиатуры.

1 ответов


вы можете передавать произвольные данные через объект event.

документы:

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

что вы можете сделать:

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

таким образом, событие, переданное обработчику(обработчикам), будет иметь keyCode установить, что вы хотите.