我使用 Chartjs 来显示一个线性图表,这个工作得很好:
// get line chart canvas
var targetCanvas = document.getElementById('chartCanvas').getContext('2d');
// draw line chart
var chart = new Chart(targetCanvas).Line(chartData);
但是当我试图更改图表的数据时,问题就出现了。我通过使用新的数据点创建一个 Chart 的新实例来更新图表,从而重新初始化画布。
这样挺好的。然而,当我将鼠标悬停在新图表上时,如果我碰巧浏览了与旧图表上显示的点相对应的特定位置,那么鼠标悬停/标签仍然会被触发,突然之间,旧图表就可以看到了。它保持可见,而我的鼠标在这个位置和消失时,移动了该点。我不想显示旧的图表。我想把它彻底移除。
我尝试在加载新图表之前清除画布和现有图表,比如:
targetCanvas.clearRect(0,0, targetCanvas.canvas.width, targetCanvas.canvas.height);
还有
chart.clear();
但是到目前为止这些都没有效果。有什么办法可以阻止这种情况发生吗?
JQuery: