combo 添加listeners,使用 initComponent、constructor 的区别

来源:互联网 发布:网络好听的歌曲排行榜 编辑:程序博客网 时间:2024/06/06 19:36
LocationCombo = Ext.extend(Ext.form.ComboBox,{
    initComponent: function(){
        var config = {
             name: 'loactionCombo'
            ,hiddenName: 'loactionCombo'
            ,fieldLabel: '所在区域'
            ,store: [['-1','请选择...']]
            ,triggerAction: 'all'
            ,mode: 'local'
            ,autoScroll: true
            ,expandPanel : new LocationTree()
            ,listeners: {
                'expand': function(){
                    alert('expand...');
//                    if(!combo.expanded){
//                        combo.expandPanel.render(combo.el);
//                        combo.doLayout();
//                        combo.expanded =  true;
//                        //applyToMarkup
//                    }
                }
                ,'collapse': function(){
                    alert('collapse');
                    //document.getElementById('tree').innerHTML='';
                }
            }
        }
        this.addListener('expand',function(){alert('2expand..')});
        Ext.apply(this, config);
        LocationCombo.superclass.initComponent.call(this);
    }

});

使用initComponent时,在config对象中写listeners无效,需使用方法添加。而使用constructor则支持 在config对象中写listeners,但ext.2.0不支持constructor.