Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Highchart线形图更新问题_Javascript_Jquery_Highcharts - Fatal编程技术网

Javascript Highchart线形图更新问题

Javascript Highchart线形图更新问题,javascript,jquery,highcharts,Javascript,Jquery,Highcharts,问题如下所示 c2chart1和c2chart1p是相同的图形,共享相同的数据。问题是c2chart1正在更新,但不是第二次更新c2chart1p $('update').bind('click',function(){ c2updateLineGraph(2[ [0, 105993], [25, 659727], [50, 648727], [75, 636627], [100, 636627] ]); c2updateLineGraph(3[ [0, 115993], [25, 65972

问题如下所示

c2chart1
c2chart1p
是相同的图形,共享相同的数据。问题是
c2chart1
正在更新,但不是第二次更新
c2chart1p

$('update').bind('click',function(){
c2updateLineGraph(2[
[0, 105993],
[25, 659727],
[50, 648727],
[75, 636627],
[100, 636627]
]);
c2updateLineGraph(3[
[0, 115993],
[25, 659727],
[50, 648727],
[75, 336627],
[100, 236627]
]);
setTimeout(函数(){
c2updateLineGraph(2[
[0, 5993],
[25, 659727],
[50, 648727],
[75, 636627],
[100, 63667]
]);
c2updateLineGraph(3[
[0, 125993],
[25, 259727],
[50, 648727],
[75, 536627],
[100, 236627]
]);
}, 8000);
});
变量c2graphdata=[{
名称:“本年度”,
数据:[]
}, {
名称:'Reapair v1',
数据:[]
}, {
名称:“修复v2”,
数据:[]
}, {
名称:“替换v1”,
数据:[]
}, {
名称:“替换v2”,
数据:[]
}, {
名称:'Facelift v1',
数据:[]
}, {
名称:“Facelift v2”,
数据:[]
}, {
名称:“重建v1”,
数据:[]
}, {
名称:“重建v2”,
数据:[]
}];
函数c2updateLineGraph(索引、数据){
c2chart1.系列[索引].setData(数据,真);
c2chart1p.series[index].setData(数据,真);
}
var c2chart1=Highcharts.chart('container1'{
系列:c2graphdata
});
var c2chart1p=Highcharts.chart('container2'{
系列:c2graphdata
});


更新图表
好吧,我根据你的代码制作了小提琴

看这个。:)

我不知道它是如何工作的,但是,两个init函数必须分开

function chart1Update(index, data) {
    c2chart1.series[index].setData(data, true);
}
function chart1pUpdate(index, data){
    c2chart1p.series[index].setData(data, true);
}

问题是在
setData()
方法中使用
data
变量两次。Highcharts将此变量用作引用(库不复制此数组)。解决方案很简单,请使用
data.slice()


工作演示:

请将您的代码添加到问题中。
function c2updateLineGraph(index, data) {
  c2chart1.series[index].setData(data.slice(), true);
  c2chart1p.series[index].setData(data.slice(), true);
}