2017-04-19 84 views
1

我认为我的问题是已知的问题,每次我制作新图表并将鼠标悬停在画布上的某些点上时,旧图表始终闪烁。 Here's one of the threads我跟着尝试修复它,但似乎没有任何工作。我试图重新添加画布,使用销毁,清除,如果哪个应该清除它,但没有。ChartJs鼠标悬停错误(显示以前的图表)

这里是我的代码:

var ctx = document.getElementById('myChart').getContext('2d'); 
var myChart = new Chart(ctx, { 
    type: 'line', 
    data: { 
     labels: chartjsDate, 
     datasets: [{ 
      label: 'temp', 
      data: chartjsTemp, 
      backgroundColor: "rgba(240,240,240,0.5)" 
     }] 
    } 
}); 

我尝试过,并且代码之后,甚至if(myChart!=null){myChart.destroy();}加入myChart.destroy();,但仍然一无所获。任何帮助如何解决它将不胜感激。我发现的所有其他线程都很老,他们的解决方案不起作用。

编辑:有些东西,我试过了,没有用:

var myChart; 
if (myChart != undefined || myChart !=null) { 
    myChart.destroy(); 
} 

回答

1

解决了!我加入这个JavaScript代码上面:

var button = document.getElementById("submitButton"); 
submitButton.addEventListener("click", function(){ 
    myChart.destroy(); 
}); 

而且改变了我的提交按钮,有标识“提交按钮”,这样的:你按下提交键

<input type="submit" class="btn btn-danger" id="submitButton" value="Send" /> 

这种方式,每次,它破坏前面的图表。奇怪的是,当试图使用myChart.destroy();我得到了错误。

+0

如何以及在哪里声明了您的myChart? – hyperfkcb

0
var ctxLine = document.getElementById("line-chart").getContext("2d"); 


//var myLineChart; 
//myLineChart; 
if(window.bar != undefined) 
    window.bar.destroy(); 
window.bar = new Chart(ctxLine, {});