为键分配绑定(keyMap)



我试图将键绑定到一些组件。我的问题是,只有最后一个组件将有一个键绑定到它。例如:

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"不再工作。我该怎么做呢?我从这里的答案中得到了灵感:如何在extjs中创建快捷键

但是我有一个特殊的情况,我有一个下拉菜单,我需要将键绑定到下拉菜单中的子键

这是因为您缺少右括号。你应该使用更好的格式和字体,这将很容易发现。

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");
        }
      } /* <-- THIS WAS MISSING */ , { /* <-- AND THIS */
        key: "t",
        fn: function() {
          alert("yet again");
        }
      }]
    });
    break;

最新更新