0

总体问题:我在不同的 JSON 文件中有逐年数据。对于每个 JSON 文件,我生成了 3 个显示在网页上的图表。现在用户应该能够选择不同的年份,并且图表应该根据该特定年份的数据进行更新。

我所做的:我编写了一个名为 initialize_charts() 的函数,它解析给定的 JSON,根据谷歌图表要求准备数据并绘制这些图表。我从 google.setOnLoadCallback 调用这个函数。(到目前为止,我已经硬编码了 json 文件名)。

主要问题:现在,我不确定当用户选择其他年份的 JSON 文件时如何重新渲染图表?不知何故,我应该能够将文件名参数传递给 google.setOnLoadCallback 或 google.load,以便我的 initialize_chart 读取这些新数据并重新呈现图表。但我不确定如何。

我尝试了什么:我尝试编写一个名为 initialize 的包装函数,如下所示:

google.setOnLoadCallback(initialize);

function initialize()
{
  initialize_charts("year1.json");
}

因此,当它首先加载时,它会加载 year1.json 数据。然后对于 onclick 事件,我调用了 onclick="initialize_charts("year2.json")。但这不起作用。我想图表的占位符(div 元素)被图表本身替换。所以,它不能找到那些占位符。

我将不胜感激任何形式的帮助。如果您需要更多信息或我的代码,我很乐意提供。从过去的两天开始,我一直坚持这一点:-(

4

1 回答 1

0

解决了。使用这段代码:

google.setOnLoadCallback(function() {
    initialize_charts('year1.json');
});

function initialize_charts(filename)
{
   ..... 
}

第一次加载后,如果要更改数据源,只需调用initialize_charts 与其他一些json 文件(例如:year2.json)

于 2013-01-08T01:01:18.850 回答