所以,我有一个登录控制器,你可以用鼠标单击登录或按 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')
给我一个不同的按钮参数?