1

我設置了我的敲除綁定有一個按鍵事件,因爲我想檢測<在輸入字段上輸入>。敲除 - keyCode屬性沒有通過包裝函數傳遞

如果我有以下幾點:

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

和我的視圖模型具有

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

然後鍵代碼顯示爲預期。

不過,我想一個額外的參數從here傳遞給函數按鍵響應,所以下面的例子,我現在有

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屬性(以及charCode屬性沒有多大用處,因爲所有非打印字符都是0)。

我還可以看到event對象有一個originalEvent屬性,但在這裏keyCode是相同的,即

因此,誰能告訴我怎麼走keyCode財產通過函數傳播文字?

Here is a JsFiddle表明它。

+0

您使用** **的FireFox? –

回答

3

我猜,你只能在Firefox

因此改變你的代碼到該得到這樣的結果0

this.KeyPress = function(p, data, event) { 
    console.log(window.event ? event.keyCode : event.which); 
} 
+0

你完全正確。非常感謝解決方案,ebrahm。 – awj