Javascript Charts.js甜甜圈

Javascript Charts.js甜甜圈,javascript,jquery,chart.js,Javascript,Jquery,Chart.js,我使用的是显示按时间间隔到达的动态数据。 当我取消时间间隔调用或重新加载页面时!看起来不错: 当我以时间间隔刷新它并用鼠标浏览时,它似乎在每次调用上都画了另一层 我已经试着画了一次,并删除和设置了新的数据,但它仍然疯狂的鼠标 var canvas = document.getElementById('modular-doughnut'); var context = canvas.getContext('2d'); context.clearRect ( 0 , 0 , canvas.wid

我使用的是显示按时间间隔到达的动态数据。
当我取消时间间隔调用或重新加载页面时!看起来不错:

当我以时间间隔刷新它并用鼠标浏览时,它似乎在每次调用上都画了另一层

我已经试着画了一次,并删除和设置了新的数据,但它仍然疯狂的鼠标

var canvas = document.getElementById('modular-doughnut');
var context = canvas.getContext('2d');
context.clearRect ( 0 , 0 , canvas.width, canvas.height );
var moduleDoughnut = new Chart(context).Doughnut(chart_data, config);
编辑: 多亏了@Koogle,我可以说问题出在工具提示上


如何解决这个问题?

为了使用同一画布,您必须清除对它的引用。Charts.js声明必须使用.destroy()清除对画布的所有引用

你在这里读到了:


我在制作的一些动态图表中也遇到了同样的问题,因此我发现只需在画布周围创建一个div,使用jquery$(“#divID”).empty()清除div,然后附加新画布,就更容易了

因为chart.js使用html画布,我想你必须在重新绘制之前清除画布。你能给我举个例子吗?你能用示例数据设置一些JSFIDLE吗?我已经使用context.clearRect(0,0,canvas.width,canvas.height);当您设置图表或将鼠标移到上时,是否要执行一次?