开发者问题收集

当图表在函数内部创建时,销毁 chart.js 不起作用 - chart.destroy() 不是一个函数

2017-11-23
6018

我正在使用一个函数来创建一个使用 chart.js 的图表。 不幸的是,每当我尝试调用 chart.destroy() 时,我都会收到错误:

“chart.destroy() 不是函数”。 我的代码如下所示:

  var chart = {};
  createChart(x_axis_data, y_axis_data, chart); //Function creating chart

图表本身是在函数内部创建的,如下所示:

chart = new Chart(document.getElementById(id),{....

图表已成功创建。但是,我无法通过调用 chart.destroy 来删除图表。 我已经尝试使用

window.chart.destroy()

但没有成功。

3个回答

设置 window.chart = ,而不是依赖 chart = 的隐式函数。如果您在代码中使用严格模式,则应该会发出警告。

Shammoo
2017-11-23

看一下这个: https://github.com/chartjs/Chart.js/issues/1007

更改:

var myNewChart1 = new Chart(ctx1).Line(barChartData1, {animation: false});

更改为:

window.myNewChart1 = new Chart(ctx1).Line(barChartData1, {animation: false});

ftani
2022-02-22

对于使用 jQuery 的我来说,我只需执行 $("#container").html="";

steve uyi
2023-05-19