Columnrange上的Highcharts setData不起作用

时间:2014-08-03 08:59:25

标签: javascript highcharts

非常简单的问题,尝试在列范围图表上使用setData,但没有成功:

原始数据:

series: [{
            name: '',
            data: [
                [-9.7, 9.4],

            ],
            color: {
                linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
                stops: [
                    [0, CalculateMidColor('#00ff00', '#ff0000', 0.8, 1)],
                    [1, CalculateMidColor('#00ff00', '#ff0000', 0.2, 1)]
                ]
            }
        }]

尝试更改数据......

chart.series[0].setData([
                [-19.7, 19.4]             
            ],true);

http://jsfiddle.net/4J452/

在setData上尝试了多种数组等变体,而不是成功 - 帮助!!

1 个答案:

答案 0 :(得分:0)

问题是你在DOM准备好之前附加了click事件监听器,所以事件没有附加。

您可以通过console.log

来看到这一点
console.log($('#button'));
$('#button').click(function() {
    chart.series[0].setData([
        [-19.7, 19.4]             
    ],true);
});

在连接点击侦听器之前,您会看到相同的选择器是一个空数组(在this JSFiddle example中检查您的控制台)。

要解决此问题,您只需在$(function() { ... })内移动按钮点击代码,这是" document ready"的jQuery简写。像这样:

$(function () {
    ...

    console.log($('#button'));
    $('#button').click(function() {
        chart.series[0].setData([
            [-19.7, 19.4]             
        ],true);
    });
});

this JSFiddle example一样。您也可以在此处查看控制台以查看不同的输出。

总而言之,您的图表和setData函数运行正常,但按钮只是没有执行代码来更新图表。