Highchart不能在jquery函数中工作

时间:2014-08-07 07:20:29

标签: javascript jquery json highcharts

您好我正在使用高级API在循环中生成图形

 for(i=1;i<10;i++)
                {

            xseries = "{'INCOPAV','B&M','SGS-ETSA'}";
            yseries = "[{name: 'Generados',data: [49.9, 71.5, 106.4]}, {name: 'Cerrados',data: [83.6, 78.8, 98.5]}]";

            generateAllGraph('graph_container'+i,'abcd'+i,xseries,yseries);

                }



function generateAllGraph(container,graphTitle,XaxesSeries,YaxesSeries)
{

                     $('#'+container+'').highcharts({
                                chart: {
                           renderTo: container,
                           type: 'column'
                       },
                       title: {
                           text: graphTitle
                       },
                       subtitle: {
                           text: ''
                       },
                       legend: {

                           itemStyle: {
                               fontSize: "10px"

                           }
                       },
                       xAxis: {
                           categories:  [XaxesSeries]

                       },
                   yAxis: {
                       min: 0,
                       title: {
                           text: 'Registros'
                       }
                   },

               tooltip: {
                   formatter: function() {
                       return ''+
                           this.x +': '+ this.y +' Registros';
                   }
               },
               plotOptions: {
                   column: {
                       pointPadding: 0.2,
                       borderWidth: 0
                   }
               },
               series: YaxesSeries
           });
}

但它没有按照参数

取X轴和Y轴

我认为传递X轴和y轴变量有问题我尝试使用jQuery.parseJSON()但没有得到结果

并提供这样的输出

请帮帮我

enter image description here

2 个答案:

答案 0 :(得分:3)

您将系列作为字符串传递,而不是作为对象传递。此外,xseries不是有效的数组声明。尝试:

xseries = ['INCOPAV','B&M','SGS-ETSA'];
yseries = [
       {name: 'Generados',
        data: [49.9, 71.5, 106.4]
       },
       {
        name: 'Cerrados',
        data: [83.6, 78.8, 98.5]
       }
      ];

(注意,周围没有双引号。

答案 1 :(得分:3)

首先,正如SteveP所说,xseries不是一个正确的数组声明。

一旦你解决了这个问题,你需要摆脱xseries / yseries周围的双引号。 你需要做的是:

var json1 = jQuery.parseJSON(xseries); var json2 = jQuery.parseJSON(yseries);

并传递这些变量。

希望有所帮助