我正在使用Charts.js显示我的图表。我能够从几年,几个月到几天进行深入研究。但是,当我将鼠标悬停在图表上时,先前的图表会突然出现。
我已经搜索了此问题,解决方案是销毁图表。但是,当我立即声明图表时如何销毁它?我看不到可以调用destroy方法的地方。
如果我检测到未定义,只会给我一个长度错误
这是功能:
function DrawActivityChart(form_data) {
$.ajax({
url: "@Url.Action("DrilldownActivities", "Activities",new { area="Analytics"})",
method: "POST",
data: JSON.stringify(form_data),
contentType: "application/json",
success: function (result) {
var labels = result.map(function (e) {
if (e.Label != null) {
return e.Label;
}
});
var data = result.map(function (e) {
return e.Count;
});;
var jvsCtx = document.getElementById("drilldownActivities");
var ctx = jvsCtx.getContext("2d");
ctx.clearRect(0, 0, jvsCtx.width, jvsCtx.height);
var aACD = {
labels: labels,
datasets: [{
label: 'All Activities',
data: data,
backgroundColor: 'rgb(251, 54, 64)',
borderWidth: 0
}]
};
if (aAChart !== undefined) {
console.log(aAChart);
aAChart.destroy();
}
var aAChart = new Chart(jvsCtx, {
type: 'bar',
data: aACD,
options: {
legend: { display: false }
},
});
},
error: function (error) {
console.log(error);
}
});
}
编辑:
解决方案之一是声明全局图表变量。但是,我不确定该怎么做。