【发布时间】:2022-02-14 23:26:23
【问题描述】:
我正在使用 Chart.js 库绘制条形图,但我想销毁条形图并在同一个画布中创建一个新图。我试过这种方法来清除画布:
var chart = new Chart( ctx, {
type : "bar",
data : data1,
options : options
});
$("#btn1").on("click", function() {
if (chart) chart.destroy();
var chart = new Chart( ctx, {
type : "bar",
data : data1,
options : options
});
});
我说的对吗?在 ButtonClick 上,我调用这个函数,它使用相同的画布。
<canvas id="graph" width="700px" height="300px"></canvas>
var ctx = $("#graph");
编辑:
我更改了代码,但只在我第一次单击按钮时起作用,当我第二次更改时,它不会再次起作用。
最棘手的是,为了工作,我需要更改 2 个图形的名称
var ctx = document.getElementById('graph');
var myChart = new Chart( ctx, {
type : "bar",
data : data1,
options : options
});
$("#btn2").on("click", function() {
if (myChart) myChart.destroy();
var ctx = document.getElementById('graph');
var chart = new Chart( ctx, {
type : "bar",
data : data2,
options : options
});
});
【问题讨论】:
-
您使用的是 jQuery,但 chartjs 需要 canvas 元素本身。您可能需要将
var ctx = $("#graph");替换为var ctx = document.getElementById("graph"); -
我尝试更改但问题仍然存在
-
到底是什么问题?您是否检查了控制台的错误消息?当我尝试这个时,它工作正常:jsfiddle.net/ewL2agqm
-
问题是图还是显示上一张,我改成你放的代码但是问题没有解决
标签: javascript html charts chart.js