2

新しいイベントを作成し(document.createEvent()またはJquery.Event +すべての重要な属性をコピーして)、元のイベントが変更されないようにクローンを送信したいと思います。
ソースコードは次のとおりですhttp://jsfiddle.net/uymYJ/20/

この質問はこれに関連していますこの状況でイベントオブジェクトを変更しないようにする方法

キーボードでキーを入力すると、newEvent.keyCode未定義の値が表示される理由はありますか?

$("#box").keydown(function(event){

    var newEvent = $.Event("keydown");

    console.log(event.keyCode); // 68 
    console.log(newEvent.keyCode); // undefined
});
4

2 に答える 2

2

jQuery APIマニュアルから:

jQuery 1.6 では、オブジェクトを jQuery.Event() に渡すこともでき、そのプロパティは新しく作成された Event オブジェクトに設定されます。

を試すこともできますがvar newEvent = $.Event('keydown', event)、私の知る限り、元のイベント オブジェクトの浅いコピーしか作成されません。

または、必要なプロパティをコピーするだけです。

var newEvent = $.Event("keydown", {
    keyCode:  event.keyCode
});

そうしないと、イベント オブジェクトには有用なプロパティがまったくありません。

于 2012-08-21T12:49:00.593 に答える
1

http://jsfiddle.net/uymYJ/21/

var e = $.Event('keydown', en);

これはあなたが(本当に?)望む効果をもたらします;)

于 2012-08-21T12:52:19.670 に答える