8

JavaScriptキーボードのイベントハンドラー(、、、イベント用)をテストする方法はありkeypressますkeyupkeydown

私は次のようなイベントハンドラーを宣言できることを知っています:

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

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

次に、単体テストでこの関数を実行しますが、実際のキーが押されたときに渡されるものと同じになるようにイベント引数オブジェクトを準備する必要があります。

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

このイベントをトリガーし、キーコードを引数などとして渡す方法はありますか?残念ながら、jQueryのtrigger()ドキュメントはキーボードイベントをカバーしていません。

4

1 に答える 1

17

イベントオブジェクトを介して任意のデータを渡すことができます。

ドキュメント:

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必要なものに設定されます。

于 2009-07-20T15:42:01.373 に答える