首页 > 解决方案 > Chart.js - 如何调用未命名图表的更新函数?

问题描述

我有很多我初始化的图表,如下所示:

HTML:

<div class="chart chart-one"></div>
<div class="chart chart-two"></div>

JS:

var $charts = $('.chart');

$charts.each(function() {
    new Chart($(this), {...});
}

然后我需要更新其中一些的数据集并调用update函数:

var currentChart = $('.chart-one');

...

currentChart.update();

我收到以下错误:

chart.update 不是函数

这可能会发生,因为我应该调用update图表实例本身的函数,而不是 jquery 对象,但我的未命名,所以我不确定如何获取这个实例?

标签: javascriptjquerychart.js2

解决方案


我建议您将第二个类作为属性添加到您div的 s 中,然后将图表实例添加到一个数组中,该数组的关键是该类。然后您可以update在图表的实例上调用函数,如下所示:

html:

<div class="chart" ch="chart-one"></div>
<div class="chart" ch="chart-two"></div>

js:

var $charts = $('.chart');
var charts = {};

$charts.each(function() {
    var key = $(this).attr("ch");
    charts[key] = new Chart($(this), {...});
}

调用更新函数:

charts["chart-one"].update();

推荐阅读