我在包装里有一张图表:
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()函数一直引用第一个图表。...oh并且不确定这是否连接,但是由loadEditor9()和redrawChart9()函数创建的图表似乎忽略了wrapper9 var中其他函数设置的高度和宽度选项,并“超出”了div容器。
发布于 2016-06-20 17:03:39
答案当然很简单。
我只需要将redrawChart9()函数更改为下面的内容,现在我可以对该图表做我想做的任何事情。
function redrawChart9(){
wrapper9 = chartEditor9.getChartWrapper();
wrapper9.draw();
}https://stackoverflow.com/questions/37923352
复制相似问题