【发布时间】:2015-07-29 12:01:52
【问题描述】:
我正在尝试将键绑定到某些组件。 我的问题是它只有最后一个组件将绑定一个键。 例如:
switch(element.id) {
case "menu-1193":
this.keyNav = new Ext.util.KeyMap({
target: element.id,
binding: [{
key: "l",
shift: true,
fn: function() {
alert("It works");
},
key: "t",
fn: function() {
alert("yet again");
}
}]
});
break;
上面的键绑定只适用于最后一个键绑定,也就是这里的键“t”。键“l”不起作用或被绑定。
因此,如果我再添加一个键绑定,则键 t 将不再起作用,但新绑定的键将起作用。比如
switch(element.id) {
case "menu-1193":
this.keyNav = new Ext.util.KeyMap({
target: element.id,
binding: [{
key: "l",
shift: true,
fn: function() {
alert("It works");
},
key: "t",
fn: function() {
alert("yet again");
},
key: "i",
fn: function() {
alert("yet again");
}
}]
});
break;
case: "menu-1194"
...
这里键“i”被绑定并且可以工作,但是键“t”不再起作用。我该怎么做呢?我从这里的答案中得到灵感:how to create shortcut keys in extjs
但我有一个特殊情况,我有一个下拉菜单,我需要将键绑定到下拉菜单中的子项
【问题讨论】:
-
一个Javascript对象不能有多个同名的属性。
-
@Haketo 你能解释一下这是什么意思吗?我对编程很陌生,所以我不完全理解它的含义以及如何解决它
-
如果你正确格式化
binding的值,你会看到数组只包含一个对象,key和fn的定义重复,所以Javascript只会使用最新的创建对象。
标签: javascript extjs