首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

ext3的toolbar如何动态添加3个按钮?

2012-10-15 
ext3的toolbar怎么动态添加3个按钮????????????????我写的代码:JScript code/** * tbarCfg:{ *catUrl:xx

ext3的toolbar怎么动态添加3个按钮????????????????
我写的代码:

JScript code
/** * tbarCfg:{ *         catUrl:"xx" * } */MyToolbar = Ext.extend(Ext.Toolbar,{    category:null,        constructor:function(_cfg){                Ext.apply(this,_cfg);        MyToolbar.superclass.constructor.call(this,{            height:40,            items:this["category"],            listeners:{                "beforerender":function(_tbar){                    Ext.Ajax.request({                        url:this["tbCfg"].catUrl,                        success:function(_response){                            alert(_response.responseText);                            this.category = _response.responseText;                                                    }                    });                                    }            }        });    }}); 


url返回的JSON数据是[{text:'啊色'},{text:'阿杜'},{text:'就啊'}] ,我明明给this["category"]赋值了啊。。。
怎么样才能一次添加3个按钮?

[解决办法]
两个地方this指向是不一样的

回调函数中的this的指向应该是window

而且就算把指向改正确同样不会得到正确结果
产生配置对象时ajax的回调函数并没有执行,所以this["category"]必定为undefined
还有就算有值items需要的是一个数组,不是字符串

你这个错误挺多的,都不好给你改,
js基础需加强

你这个的做法,建议改一下
JScript code
MyToolbar.superclass.constructor.call(this,{            height:40,            items:[],//先配一个空的            listeners:{                "beforerender":function(_tbar){                    var _this=this;//用一个局部变量保存this引用                    Ext.Ajax.request({                        url:this["tbCfg"].catUrl,                        success:function(_response){                            alert(_response.responseText);                            var backData=eval(_response.responseText);//json字符串需解析为数组                                for(var i=0;i<backData.length;i++)//动态添加项                            {                               _this.add(backData[i]);                            }                                                    }                    });                                    }            }        }); 

热点排行