highcharts系列选项的问题

时间:2011-08-13 16:26:44

标签: javascript zend-framework highcharts

您好我的highcharts'系列'选项有问题。我初始化了图表选项,如下所示:

            var options = {
            chart: {
                renderTo: 'chart',
                defaultSeriesType: 'line',
            },
            title: {
                text: 'Weight Monitor',
            },
            xAxis: {
                title: {
                    text: 'Date Measurement'
                },
                categories: []
            },
            yAxis: {
                title: {
                    text: 'Weight (in Lbs)'
                }
            },
            series: []
    };

我保留了类别:[]为空,以便我可以稍后将值放入类别中。我对我的系列选项做了同样的事情。我保留数据:[]为空白以便稍后填写。现在我写了代码来填充数据。

                var lines = [
                [2011,150],
                [2012,121],
        $.each(lines, function(lineNo, line) {
            var items = line.toString().split(",");
            $.each (items, function(itemNo, item) {

                if(itemNo == 0){
                    alert("itemNo: " + itemNo + " item: " + item);
                    options.xAxis.categories.push(item);
                    alert(options.xAxis.categories);
                }

                else {
                            var series = {
                                    data: []
                            };
                    alert("itemNo: " + itemNo + " item: " + item);
                    options.series.data.push(parseFloat(item));
                    alert(options.series.data);
                };
            });
        });
        var chart = new Highcharts.Chart(options);

现在,当我执行此代码时,我的categories []正在获取值,但是当它位于“options.series.data.push(parseFloat(item))”时执行会被卡住。我在“alert(”itemNo:“+ itemNo +”item:“+ item);”中获得了正确的值。但就在此之后,它在series.data []

中推送项目时挂起

任何想法是什么问题。我在php项目中运行这个javascript,所以不知道是否因为语言有任何问题。感谢

1 个答案:

答案 0 :(得分:2)

问题是options.series.data.push(parseFloat(item))

如果查看选项对象,可以看到系列数组为空。您可以在选项定义中使用广告系列对象,如下所示 -

series: [{
    data: []
}]

也是行

var series = {
    data: []
};

是没用的。