我正在使用extjs 3构建我自己的类(许可问题)
Ext.ux.MyClass = Ext.extend(Ext.Container, {
initComponent: function() {
this.button = new Ext.Button({
scope:this,
text:'my button',
handler: function() {
alert(0);
this.fireEvent('myevent');
}
});
this.addEvents('myevent');
}
});
//in the code:
var obj = new Ext.ux.MyClass(...);
obj.on('myevent', function () {alert(1);});
事件未触发,代码未给出错误,我可以看到Alert(0)而不是Alert(1);
我尝试了侦听器,但也无法正常工作,this.fireEvent返回true。
谢谢你的帮助
最佳答案
您正在使用哪个版本的ExtJS 3? 3.0、3.1或3.4?
如果是3.4,那似乎对我有用。我添加了一些额外的代码,只是为了使按钮呈现,但对我来说似乎还可以。
我使用的最终代码是:
Ext.onReady(function(){
Ext.ux.MyClass = Ext.extend(Ext.Container, {
initComponent: function() {
this.button = new Ext.Button(
{
renderTo: document.body,
scope:this,
text:'my button',
handler: function() {
alert(0);
this.fireEvent('myevent');
}
});
this.addEvents('myevent');
}
});
var obj = new Ext.ux.MyClass();
obj.on('myevent', function () {alert(1);});
});
在此处查看jsfiddle:http://jsfiddle.net/J9YcL/
如果有任何区别,我正在Chrome中运行。
关于javascript - this.fireEvent无法正常工作extjs3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15257978/