Javascript 第二次调用函数时,图1挂起

Javascript 第二次调用函数时,图1挂起,javascript,canvasjs,Javascript,Canvasjs,我希望在单击按钮时动态生成图形。我的问题是,当我第二次单击按钮时,第一个图形会阻止显示数据。 问题在于addChart函数中使用的setInterval,但我不知道如何纠正这个问题。我的逻辑是否有理智 <script> function addChart() { chartCount++; var name = document.getElementById("chartName").value; chartDict[name]

我希望在单击按钮时动态生成图形。我的问题是,当我第二次单击按钮时,第一个图形会阻止显示数据。 问题在于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>

函数addChart(){
chartCount++;
var name=document.getElementById(“chartName”).value;
chartDict[名称]=chartCount;
chart[chartCount]=新建CanvasJS.chart(“chartContainer”+chartCount{
标题:{
文本:名称
},
axisY:{
包括:错,
最高:70
},
axisX:{
valueFormatString:“hh:mm tt”
},
数据:[{
键入:“行”,
数据点:dps[图表计数]
}]
});
updateChart[chartCount]=函数(计数){
计数=计数| | 1;
对于(var j=0;jdataLength){
dps[chartCount].shift();
}
图表[chartCount].render();
};
间隔[chartCount]=设置间隔(updateChart[chartCount],1000)
} 

您可以尝试以下解决方法:

在将新值重新分配给图表元素之前,请从DOM中删除图表的内部内容 下面是使用jquery的remove()方法的链接:


我尝试过,但只有一个setInterval函数可以处理多个图形。很抱歉,此链接对我无效,无法打开链接