2015-02-01 2 views
1

Я использую Charts.js Doughnut chart, который отображает динамические данные, поступающие на временные интервалы.
Когда я отменяю временные интервалы звонков или перезагружаю страницу! она выглядит хорошо:Charts.js donut

enter image description here

Когда я обновить, что с интервалами времени и перейти с помощью мыши, кажется, что это сделать еще один слой на каждом вызове.

enter image description here

Я уже пытался сделать это один раз и удалить и установить новые данные, но он все еще сходит с ума от мыши над.

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); 

EDIT: Благодаря @Koogle я могу сказать, что проблема заключается в подсказках.

Как это решить?

+0

Поскольку chart.js использует html-canvas, я думаю, вам нужно очистить холст, прежде чем перерисовывать. – Koogle

+0

Можете ли вы показать мне пример? – NickF

+0

Можете ли вы настроить некоторые jsfiddle с образцами данных? – Koogle

ответ

0

Для того, чтобы использовать тот же холст, вы должны очистить ссылку (и) к нему. Charts.js заявляет, что вы должны использовать .destroy(), чтобы очистить все ссылки на холст.

Вы читали об этом здесь: Charts.js .destroy()

Я была такая же проблема в некоторых динамических диаграммах, которые я сделал, так что я нашел, что это проще просто создать DIV вокруг холста, очистить DIV с помощью JQuery $ ("# divID "). empty(), а затем добавьте новый холст.