我已将我的Knockout绑定设置为具有按键事件,因为我希望检测< Enter>在输入字段上。
如果我有以下内容:
data-bind="event: { keypress: KeyPress }"
我的视图模型有
this.KeyPress = function(data, event) {
console.log(event.keyCode);
}
然后keyCode按预期显示。
但是,我希望将另一个参数传递给函数KeyPress,所以按照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
属性,但不是{{1 property(和keyCode
属性没什么用,因为所有不可打印的字符都是0)。
我还可以看到charCode
对象具有event
属性,但此处的originalEvent
是相同的,即 0。
那么有人能告诉我如何通过函数文字传播keyCode
属性吗?
Here is a JsFiddle证明了这一点。
答案 0 :(得分:3)
我猜你只在firefox
中得到了这个结果0
所以将代码更改为:
this.KeyPress = function(p, data, event) {
console.log(window.event ? event.keyCode : event.which);
}