Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过鼠标悬停和多次更新来解决Chart.js 2.0的问题?_Javascript_Jquery_Charts_Chart.js - Fatal编程技术网

Javascript 如何通过鼠标悬停和多次更新来解决Chart.js 2.0的问题?

Javascript 如何通过鼠标悬停和多次更新来解决Chart.js 2.0的问题?,javascript,jquery,charts,chart.js,Javascript,Jquery,Charts,Chart.js,非常奇怪,我有一个Chart.js图表,我需要进行日常更新。更新工作正常,但如果将鼠标移到图表上或多次单击按钮更新(添加数据),条形图和线条将消失,控制台中会显示此错误: Uncaught TypeError: Cannot read property 'draw' of null 请点击按钮数次,您可以缓慢或快速地进行测试。单击“添加数据”按钮后,将鼠标也移到图表上 您可以在以下位置进行测试: 如何避免此错误?这是因为您混淆了创建图表和添加更多数据的函数。通过如下所示将它们分开来修复此问题

非常奇怪,我有一个Chart.js图表,我需要进行日常更新。更新工作正常,但如果将鼠标移到图表上或多次单击按钮更新(添加数据),条形图和线条将消失,控制台中会显示此错误:

Uncaught TypeError: Cannot read property 'draw' of null
请点击按钮数次,您可以缓慢或快速地进行测试。单击“添加数据”按钮后,将鼠标也移到图表上

您可以在以下位置进行测试:


如何避免此错误?

这是因为您混淆了创建图表和添加更多数据的函数。通过如下所示将它们分开来修复此问题

var canvas = document.getElementById("canvasChart");
var $chart;
function createChart(ID) {
  console.log(canvas);
  console.log(chartsParams);
  $chart = new Chart(canvas, chartsParams['myChart']);
}

function addData() {
  $chart.data.datasets.push({
    label: 'Added',
    data: [12, 32, 43, 53]
  });
  $chart.update();
}

createChart();
document.getElementById("addButton").addEventListener("click", addData);

此处演示:

这是因为您混合了创建图表和添加更多数据的函数。通过如下所示将它们分开来修复此问题

var canvas = document.getElementById("canvasChart");
var $chart;
function createChart(ID) {
  console.log(canvas);
  console.log(chartsParams);
  $chart = new Chart(canvas, chartsParams['myChart']);
}

function addData() {
  $chart.data.datasets.push({
    label: 'Added',
    data: [12, 32, 43, 53]
  });
  $chart.update();
}

createChart();
document.getElementById("addButton").addEventListener("click", addData);
此处演示: