HighCharts重绘会在AJAX调用中出错

时间:2014-10-31 05:44:39

标签: jquery ajax highcharts

我需要在通过Ajax获取数据后绘制高级图表。

我的高保真选项正在关注

var option = {
        chart: { renderTo: "chartDiv", marginleft: 100 },
        title: {
            text: '',
            x: -20 //center
        },
        xAxis: {
            title: {
                text: "Shifts"
            },


        },
        yAxis: {
            title: {
                text: "Volume"
            },
            min: 0
        },
        tooltip: {
            crosshairs: true,
            shared: true,
            formatter: function () {

                var s = [];
                s.push('<span> Day: <strong>' + this.points[0].x + '</strong></span>');
                $.each(this.points, function (i, point) {
                    s.push('<span style="color:' + point.series.color + ';font-weight:bold;">' + point.series.name + ' : ' +
                        Math.round(point.y * 1000) / 1000 + '<span>');
                });

                return s.join('<br />');
            }

        },
        legend: { layout: 'vertical', align: 'right', verticalAlign: 'top', floating: true, borderWidth: 0, floating: false },
        plotOptions: {

        }

    };

我的值是通过ajax生成的

function generateChart(shiftNum, days) {
  var chart = new Highcharts.Chart(option);
  for (series = 0; series < shiftNum; series++) {
    chart.addSeries({
      type: 'bar',

    });
  }
  for (i = 1; i < days; i++) {
  (function(i){
    $.ajax({
      type: "POST",
      url: "/ajaxcall/ShiftData",
      dataType: "json",
      data: JSON.stringify({
        'shiftnum': shiftNum,
        'dayOfMonth': i
      }),
      contentType: 'application/json; charset=utf-8',
      success: function(result) {
        if (result.Success) {
          $.each(result.Report, function(s, rep) {
            chart.series[s].data.push([i, rep.FinalVol]);
          });
        }
      },
      complete: function() {
        console.log(chart);
        chart.xAxis[0].isDirty = true;
        chart.redraw(); //This gives error

      }
    });
   })(i);
  }
}
generateChart(2, 7);

当我运行它时,它运行正常,直到它到达重绘方法。当我在firebug中看到控制台的图表时,我可以看到数据的设置方式与我想要的一样。但是每次执行ajax时我都会得到这个迭代。

TypeError:b [l] .destroyElements不是函数
...... r(l = 0; l

图表应显示每个班次中所选天数的产量。

请帮忙

0 个答案:

没有答案