我在函数中使用全局变量,但似乎我无法将其设置为某个值。
我有这段代码:
<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] = {};
答案 0 :(得分:0)
代码执行时
options.series[0].data = traffic;
options
对象没有series
属性。所以series[0]
未定义。您应该在创建options
对象时或在设置它之前定义该属性。
var options = new Object();
options.series = [];
然后,您需要先定义该数组的0th
元素,然后才能设置其data
属性。
options.series[0] = {};