2017-04-20 130 views
1

我想要使用空格键选择和解除组合框项目。在现有的功能中,它通过Enter键发生。 我有下面的代码,这是不工作,并给sencha文件内深深的错误。在这里,我是组合框。模拟点击空格键上的Enter键

keydown: function (me, e, eOpts) { 
    me.keyPressed = e.getKey(); 
    if (me.keyPressed == 32) { 
     e.keyCode = Ext.EventObject.ENTER; 
     this.fireEvent(e); 
    } 
} 

回答

1

要走的路是修改选取器的KeyNavigation的键绑定。

listeners:{ 
    afterrender:function(combo) { 
     var picker = combo.getPicker(), 
      navModel = picker.getNavigationModel(), 
      map = navModel.keyNav.map, 
      existingBindings = Ext.Array.filter(map.bindings, function(binding) { 
       return binding.key === Ext.event.Event.SPACE; 
      }; 
     map.removeBinding(existingBindings[0]); 
     map.addBinding({ 
       key: Ext.event.Event.SPACE, 
       fn: navModel.onKeyEnter, 
       scope: navModel 
      }); 
    } 
} 
+0

感谢您的回复亚历山大。此代码第一次运作时,我点击空间,它正确地取消选择所选项目。之后,当我单击空格键而不是选择取消选择的项目时,它将光标移动到显示区域的前面(此处的焦点将转到显示列表区域,而不是选定的项目) – Gaurav