HIghcharts.js addseries不起作用?

时间:2014-08-21 05:05:50

标签: javascript highcharts

好的,

我知道以前曾经问过,但我仍然无法弄明白。 图表确实呈现,但在第二个事件中它不会更新。

我在highcharts中使用chart.addSeries。 图表更新,但没有绘制新数据。 困惑。

我在这里缺少什么?

谢谢!

A

 <script> 
      var executed = false;
      $(document).ready(function(){
    $('.w-input').bind('railsAutocomplete.select', function(event, data){
      var data1=  parseFloat(data.item.test)
      if (!executed) {
        executed = true;
        var Mychart = new Highcharts.Chart({
            chart: {
                renderTo: 'chart-area',
                type: 'column',
            },

            title: {
                text: 'test'
            },

            legend: {
                enabled: false
            },

            xAxis: {
                categories: [data.item.test2],
                title: {
                    text: 'test2'
                }
            },

        yAxis: {
            title: {
                text: 'test3'
            },
            plotLines: [{
                value: 1320,
                color: 'red',
                width: 1,
                label: {
                    text: 'National mean: 1320',
                    align: 'center',
                    style: {
                        color: 'gray'
                    }
                }
            }]
        },

        series: [{
            name: 'test1',
            data: [data1],
            tooltip: {
                headerFormat: '<em>test1 {point.key}</em><br/>'
            }
        }, {
            marker: {
                fillColor: 'white',
                lineWidth: 1,
                lineColor: Highcharts.getOptions().colors[0]
            },
            tooltip: {
                pointFormat: 'test: {point.y}'
            }
        }]

    });
}
else{
  var chart = $('#chart-area').highcharts();
  chart.addSeries({
          name: data.item.test2,
          data: data1
    });
  chart.redraw();
  }
  });
});
</script>

1 个答案:

答案 0 :(得分:1)

而不是这样做:

 chart.addSeries({
      name: data.item.test2,
      data: data1
});

这样做:

chart.addSeries({
      name: data.item.test2,
      data: [data1] // data value should be an array
});

如果仍然无效,请按照以下方式进行:

chart.addSeries({
      name: data.item.test2,
      data: [parseInt(data1)] // in data should be number not string
});