1

Enter入力フィールドで検出したいので、キープレスイベントを持つようにノックアウトバインディングを設定しました。

私が以下を持っている場合:

data-bind="event: { keypress: KeyPress }"

そして私のビューモデルは

this.KeyPress = function(data, event) {
    console.log(event.keyCode);
}

その後、キーコードが期待どおりに表示されます。

ただし、追加のパラメーターを関数に渡したいので、 hereKeyPressの例に従って、

data-bind="event: { keypress: function (data, event) { KeyPress('myParam', data, event); return true; } }" />

そして私の対応する関数は今

this.KeyPress = function(p, data, event) {
    console.log(event.keyCode);
}

これで、keyCodeプロパティは常に 0 を返します。eventオブジェクト内で、charCodeキーを押すたびにプロパティが設定されていることがわかりますが、プロパティは設定されていませんkeyCode(印刷できない文字はすべて 0 であるため、charCodeプロパティはあまり使用されません)。

eventオブジェクトにoriginalEventプロパティがあることもわかりますがkeyCode、ここでは同じ、つまり0 です。

keyCodeそれで、関数リテラルを介して伝播するプロパティを取得する方法を誰か教えてもらえますか?

これは、それを示すJsFiddleです。

4

1 に答える 1