Как тестировать события клавиатуры jQuery? - PullRequest
8 голосов
/ 20 июля 2009

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

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

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

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

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

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

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

1 Ответ

16 голосов
/ 20 июля 2009

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

Документы:

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, установленное на то, что вы хотите.

...