javascript在函数不工作时为全局变量赋值

时间:2014-02-23 21:58:57

标签: javascript

我在函数中使用全局变量,但似乎我无法将其设置为某个值。

我有这段代码:

<script type="text/javascript">
    var chart;
    var options = new Object();
                getdata = function(){
            return $.get('data.php', <?php echo ($params1); ?>, function(tsv) {
            var lines = [];
                    traffic = [];
                    try {
                        // split the data return into lines and parse them
                        tsv = tsv.split(/\n/g);
                        jQuery.each(tsv, function(i, line) {
                            line = line.split(/\t/);
                            date = Date.parse(line[0] +' UTC');
                            traffic.push([
                                date,
                                parseFloat(line[1].replace(',', ''), 10)
                            ]);
                        });
                    } catch (e) {  }
                    options.series[0].data = traffic;
                });
        };

    $.when(getdata()).done(function (resp){
                        chart = new Highcharts.Chart(options);
                });
</script>

所以它不起作用,除非在getdata函数之前,我写道:

options.series = [{

            }];

我可以做些什么来确保我可以在函数内部设置变量而不写这个?

另外,我不能将其设置为

options.series[0] = {};

1 个答案:

答案 0 :(得分:0)

代码执行时

options.series[0].data = traffic;

options对象没有series属性。所以series[0]未定义。您应该在创建options对象时或在设置它之前定义该属性。

var options = new Object();
options.series = [];

然后,您需要先定义该数组的0th元素,然后才能设置其data属性。

options.series[0] = {};