我在包装器中有一个图表:
var wrapper9 = null;
var chartcolors09 = parent.defaultcolors;
var chartEditor9 =null;
function Chart9() {
var data = new google.visualization.DataTable(<?=$jsonTableB9?>);
wrapper9 = new google.visualization.ChartWrapper({
chartType:'BarChart',
dataTable: data,
options: {
'colors': chartcolors09,
'chartArea': {
'left': 40,
'top': 50,
'right': 100,
'bottom': 50
},
'legend' :'Right',
'title':'Chart Title'
}
});
}
我可以运行一个函数来使用这个函数更新该图表的颜色:
function setcolor9(){
wrapper9.setOptions({
'colors': chartcolors09
});
wrapper9.draw(document.getElementById('chart_div9'));
}
这很好用。我还可以在该图表上使用其他函数来包装更新其他一些选项。但是当我在此图表上使用ChartEditor时
function loadEditor9() {
chartEditor9 = new google.visualization.ChartEditor();
google.visualization.events.addListener(chartEditor9, 'ok', redrawChart9);
chartEditor9.openDialog(wrapper9, {});
}
function redrawChart9(){
chartEditor9.getChartWrapper().draw(document.getElementById('chart_div9'));
}
setcolor9()函数停止工作。有点看起来ChartEditor创建了第二个图表并将其置于第一个图表的顶部,而setcolor9()函数仍然引用第一个图表。 ...哦,不确定这是否已连接但是loadEditor9()和redrawChart9()函数创建的图表似乎忽略了wrapper9 var中其他函数设置的高度和宽度选项,并且&#34;在&#34;外部&#34 ; div容器。
答案 0 :(得分:0)
所以答案当然很简单。
我只需要将redrawChart9()函数更改为以下内容,现在我可以使用该图表执行任何操作。
function redrawChart9(){
wrapper9 = chartEditor9.getChartWrapper();
wrapper9.draw();
}