有一段Extjs代码,在IE8下正常,火狐下有异常,请大家帮忙看看。
时间:2011-04-15
来源:互联网
想实现点击一个按钮,从后台读取数据,显示一个pie图表,
然后再点这个按钮,隐藏pie图,再点再次读取数据显示。
主要代码如下,中间有省略。
pieChartPanel = function() {
this.refresh = function(dataUrl) {
if (typeof dataUrl == "string") {
store.proxy.conn.url = dataUrl;
store.load();
} else if (typeof dataUrl == "object") {
store.loadData(dataUrl, false);
}
this.show();
}
var store = new Ext.data.Store({
。。。。。。
pieChartPanel.superclass.constructor.call(this, {
。。。。。。
};
Ext.extend(pieChartPanel, Ext.Panel);
。。。。。。
btnShowChart = new Ext.Button({
text : '分析',
handler : function(){
if(pieChartPnl.hidden){
Ext.Ajax.request({
url : 'XXXX.do',
method : 'POST',
success : function(rsp, opt) {pieChartPnl.refresh(Ext.util.JSON.decode(rsp.responseText));},
failure : function(rsp, opt) {pieChartPnl.refresh('YYYY.do');}
});
btnShowChart.setText('隐藏');
}else{
pieChartPnl.hide();
btnShowChart.setText('分析');
}
},
。。。。。。
现在出现一个问题,在IE8下,一切正常。
在火狐下,第一次点按钮,能显示出来,再点,隐藏掉了,然后再点,图不出来了。
用firebug调试了一下,发现第一次点按钮,执行refresh函数时,能正常走完所有逻辑,
但之后再执行refresh函数时,store.loadData(dataUrl, false);这句执行完之后,就不继续执行this.show();了,
当然现在有解决方法,就是进到refresh函数里先执行this.show();,这样ie8,火狐都没问题了。
可是我想知道,为何在火狐浏览器下,按照我上面的代码,第二次执行refresh函数,store.loadData(dataUrl, false);之后的代码会不被执行呢?
然后再点这个按钮,隐藏pie图,再点再次读取数据显示。
主要代码如下,中间有省略。
pieChartPanel = function() {
this.refresh = function(dataUrl) {
if (typeof dataUrl == "string") {
store.proxy.conn.url = dataUrl;
store.load();
} else if (typeof dataUrl == "object") {
store.loadData(dataUrl, false);
}
this.show();
}
var store = new Ext.data.Store({
。。。。。。
pieChartPanel.superclass.constructor.call(this, {
。。。。。。
};
Ext.extend(pieChartPanel, Ext.Panel);
。。。。。。
btnShowChart = new Ext.Button({
text : '分析',
handler : function(){
if(pieChartPnl.hidden){
Ext.Ajax.request({
url : 'XXXX.do',
method : 'POST',
success : function(rsp, opt) {pieChartPnl.refresh(Ext.util.JSON.decode(rsp.responseText));},
failure : function(rsp, opt) {pieChartPnl.refresh('YYYY.do');}
});
btnShowChart.setText('隐藏');
}else{
pieChartPnl.hide();
btnShowChart.setText('分析');
}
},
。。。。。。
现在出现一个问题,在IE8下,一切正常。
在火狐下,第一次点按钮,能显示出来,再点,隐藏掉了,然后再点,图不出来了。
用firebug调试了一下,发现第一次点按钮,执行refresh函数时,能正常走完所有逻辑,
但之后再执行refresh函数时,store.loadData(dataUrl, false);这句执行完之后,就不继续执行this.show();了,
当然现在有解决方法,就是进到refresh函数里先执行this.show();,这样ie8,火狐都没问题了。
可是我想知道,为何在火狐浏览器下,按照我上面的代码,第二次执行refresh函数,store.loadData(dataUrl, false);之后的代码会不被执行呢?
作者: tennisboy0317 发布时间: 2011-04-15
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28