所以,我有一个登录控制器,你可以用鼠标单击登录或按 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');
}
});
我意识到当我用鼠标点击登录按钮时,onButton
功能正常运行,button.up()
返回登录名window
.
但是,如果我按下 Enter 键并触发onKey
要做的功能fireEvent('click')
,在这种情况下onButton
启动但参数button
不一样button
鼠标点击时接收到的参数!而这一次,button.up()
函数未定义。
问题是,为什么fireEvent('click')
给我一个不同的按钮参数?
您必须使用fireEvent
像这样的函数:
var myBtn = Ext.getCmp('#idLogin button');
myBtn.fireEvent('click', myBtn);
试一试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)