【发布时间】:2013-05-31 14:13:59
【问题描述】:
我已将我的 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 属性,但不是 keyCode 属性(和 @987654332 @ 属性用处不大,因为所有不可打印的字符都是 0)。
我还可以看到event 对象有一个originalEvent 属性,但是这里的keyCode 是一样的,即 0。
那么谁能告诉我如何让keyCode 属性通过函数文字传播?
Here is a JsFiddle 演示它。
【问题讨论】:
-
您在使用 FireFox 吗??
标签: javascript knockout.js dom-events keycode function-literal