我正在使用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/

10-11 23:57