所以,我有一个登录控制器,你可以用鼠标单击登录或按 Enter 键,如下所示:
Ext.define('My.controller.Login', {
extend: 'Ext.app.Controller',
init: function(application) {
this.control({
"#idLogin button": {click: this.onButton},
"#idLogin form > *": {specialkey: this.onKey}
});
},
onButton: function(button, e, eOpts) {
var win = button.up('window'); // the login window
//do more stuff...
},
onKey: function (field, el) {
if (el.getKey() == Ext.EventObject.ENTER) //ENTER key performs Login
Ext.getCmp('#idLogin button').fireEvent('click');
}
});
我意识到当我用鼠标单击 Login 按钮时,onButton功能正常工作,button.up()返回给我 Login window。
但是,如果我按下 Enter 键并触发执行onKey功能fireEvent('click'),在这种情况下会onButton触发但参数与您单击鼠标时收到button的参数不同!button而这一次,button.up()函数是未定义的。
问题是,为什么fireEvent('click')给我一个不同的按钮参数?