Salesforce:Javascript不想重新加载(经过chrome测试)

Salesforce:Javascript不想重新加载(经过chrome测试),javascript,jquery,salesforce,refresh,rerender,Javascript,Jquery,Salesforce,Refresh,Rerender,我遇到了一个我无法解决的问题。事实上,我有一个JS,其中有一个apex变量,我想重新渲染这个块,以获得新的值。我正在使用outputpanel,但不幸的是没有出现重新加载。我的代码如下 <apex:commandButton value="button" id="theButton" action="{!setDataSet}" oncomplete="refreshMyChart()" rerender="jstorerender"/> <apex:outputpan

我遇到了一个我无法解决的问题。事实上,我有一个JS,其中有一个apex变量,我想重新渲染这个块,以获得新的值。我正在使用outputpanel,但不幸的是没有出现重新加载。我的代码如下

<apex:commandButton value="button" id="theButton" action="{!setDataSet}" oncomplete="refreshMyChart()" rerender="jstorerender"/>
    <apex:outputpanel id="jstorerender"> 
        <script type="text/javascript" >
            $j = jQuery.noConflict(); 
            var innerVar = '{!innerString}'; 
            var covVar = '{!coverageAsCategorie}';
            console.log("want to refreshINIT"+innerVar+covVar);
        </script>   
     </apex:outputpanel>

$j=jQuery.noConflict();
var innerVar='{!innerString}';
var covVar='{!coverageAsCategorie}';
log(“想要刷新init”+innerVar+covVar);
“刷新我的图表”函数有点复杂,因此我将其放在另一个块中,因为我认为这不是问题的根源,因为重新渲染应该在oncomplete之前发生:

<script type="text/javascript">
    function refreshMyChart(){
            console.log("want to refreshINIT2"+innerVar+covVar);
            var chart;
            var colors = Highcharts.getOptions().colors;
            var categories = ['{!coverageAsCategorie}'];
            var name = 'Browser brands';
            var data = ['{!innerString}'];

            function setChart(options) {
               chart.series[0].remove(false);
               chart.addSeries({
                   type: options.type,
                   name: options.name,
                   data: options.data,
                   color: options.color || 'white'
               }, false);
               chart.xAxis[0].setCategories(options.categories, false);
               chart.redraw();
            };
            chart = new Highcharts.Chart({
                    chart: {
                        renderTo: 'container',
                        inverted:true

                    },
                    title: {
                        text: 'Browser market share, April, 2011'
                    },
                    subtitle: {
                        text: 'Click the columns to view versions. Click again to view brands.'
                    },
                    xAxis: {
                        categories: categories
                    },
                    yAxis: {
                        title: {
                            text: 'Total percent market share'
                        }
                    },
                    plotOptions: {
                        series: {
                            cursor: 'pointer',
                            point: {
                                events: {
                                    click: function() {
                                        var drilldown = this.drilldown;
                                        var options;
                                        if (drilldown) { // drill down
                                            options = {
                                                'name': drilldown.name,
                                                'categories': drilldown.categories,
                                                'data': drilldown.data,
                                                'color': drilldown.color,
                                                'type': 'columnrange',
                                            };
                                        } else { // restore
                                            options = {
                                                'name': name,
                                                'categories': categories,
                                                'data': data,
                                                'type': 'pie'
                                            };
                                        }
                                        setChart(options);
                                    }
                                }
                            },
                            dataLabels: {
                                enabled: true,
                                color: colors[0],
                                style: {
                                    fontWeight: 'bold'
                                },
                                formatter: function() {
                                    return this.y +'%';
                                }
                            }
                        }
                    },
                    tooltip: {
                        formatter: function() {
                            var point = this.point,
                                s = this.x +':<b>'+ this.y +'% market share</b><br/>';
                            if (point.drilldown) {
                                s += 'Click to view '+ point.category +' versions';
                            } else {
                                s += 'Click to return to browser brands';
                            }
                            return s;
                        }
                    },
                    series: [{
                        type: 'pie',
                        name: name,
                        data: data,
                        color: 'white'
                    }],
                    exporting: {
                        enabled: false
                    }
            });

    };</script>

函数refreshMyChart(){
log(“想要刷新init2”+innerVar+covVar);
var图;
var colors=Highcharts.getOptions().colors;
变量类别=['{!coverageAsCategorie}'];
变量名称=‘浏览器品牌’;
变量数据=['{!innerString}'];
功能设置图(选项){
chart.series[0]。删除(false);
chart.addSeries({
type:options.type,
name:options.name,
数据:options.data,
颜色:选项。颜色| |“白色”
},假);
chart.xAxis[0].setCategories(options.categories,false);
chart.redraw();
};
图表=新的高点图表。图表({
图表:{
renderTo:'容器',
倒过来:是的
},
标题:{
文字:“浏览器市场份额,2011年4月”
},
副标题:{
文本:“单击列可查看版本。再次单击可查看品牌。”
},
xAxis:{
类别:类别
},
亚克斯:{
标题:{
文字:“总市场份额百分比”
}
},
打印选项:{
系列:{
光标:“指针”,
要点:{
活动:{
单击:函数(){
var drilldown=this.drilldown;
var期权;
如果(向下钻取){//向下钻取
选项={
'name':drilldown.name,
“类别”:深入查看.categories,
“数据”:drilldown.data,
'color':drilldown.color,
“类型”:“columnrange”,
};
}否则{//restore
选项={
“名称”:名称,
“类别”:类别,
“数据”:数据,
“type”:“pie”
};
}
设定图(选项);
}
}
},
数据标签:{
启用:对,
颜色:颜色[0],
风格:{
fontWeight:“粗体”
},
格式化程序:函数(){
返回这个.y+'%';
}
}
}
},
工具提示:{
格式化程序:函数(){
var点=此点,
s=此.x+':'+此.y+%市场份额
; if(点向下钻取){ s+='点击查看'+point.category+'版本'; }否则{ s+='点击返回浏览器品牌'; } 返回s; } }, 系列:[{ 键入“pie”, 姓名:姓名,, 数据:数据, 颜色:“白色” }], 出口:{ 已启用:false } }); };
不管怎样,当我点击我的按钮时会发生什么

  • 我的刷新函数中的console.log出现(我猜oncomplete事件已经触发)
  • 我的outputpanel块中的console.log不显示。然后我认为rerender有问题。加上当页面加载时console.log是diplay,所以我不认为代码有任何问题
此外,不会触发JS错误。那我真的不知道为什么重新启动机不想操作

你知道这里发生了什么吗


Thx guys:)

从重新呈现的OutPanel内部调用refreshMyCart