我想在单击按钮时动态生成图。我的问题是,当我第二次单击按钮时,第一个图形块显示数据。
问题是在addChart函数中使用了setInterval,但我不知道如何解决该问题。我的逻辑是否有些理智?
<script>
function addChart() {
chartCount++;
var name = document.getElementById("chartName").value;
chartDict[name] = chartCount;
chart[chartCount] = new CanvasJS.Chart("chartContainer" + chartCount, {
title: {
text: name
},
axisY: {
includeZero: false,
maximum: 70
},
axisX: {
valueFormatString: "hh:mm tt"
},
data: [{
type: "line",
dataPoints: dps[chartCount]
}]
});
updateChart[chartCount] = function(count) {
count = count || 1;
for (var j = 0; j < count; j++) {
dps[chartCount].push({
x: xVal[chartCount],
y: yVal[chartCount]
});
xVal[chartCount] = new Date()
//console.log(xVal)
//xVal++;
}
if (dps[chartCount].length > dataLength) {
dps[chartCount].shift();
}
chart[chartCount].render();
};
intervals[chartCount] = setInterval(updateChart[chartCount], 1000)
}
</script>
最佳答案
您可以尝试以下解决方法:
在将新值重新分配给图表元素之前,从DOM中删除图表的内部内容
以下是使用jquery的remove()方法的链接:
https://api.jquery.com/remove/