如何访问setinterval函数内的javascript数组值
问题描述:
如何从setinterval中定义的函数内访问系列数据。当我尝试访问任何值,甚至数组长度时,它说未定义。如何访问setinterval函数内的javascript数组值
events: {
load: function() {
// set up the updating of the chart each second
var series0 = this.series[0];
var series1 = this.series[1];
var series2 = this.series[2];
var series3 = this.series[3];
setInterval(function() {
var y = $.ajax({url: "/index.php/control/fetch/<?php echo $uid; ?>",async: false}).responseText;
y = y.split(" ");
var x = parseInt(y[0]);
//alert("x = " + series0[0]);
//alert("len is " + parseInt(series0.length));
series0.addPoint([x, parseFloat(y[1])], true, true);
series1.addPoint([x, parseFloat(y[2])], true, true);
series2.addPoint([x, parseFloat(y[3])], true, true);
series3.addPoint([x, parseFloat(y[4])], true, true);
}, 5000);
}
}
感谢
答
你需要做出的setInterval回调函数外这的参考。类似这样的:
load : function() {
...
var _self = this;
setInterval(function() {
console.log(_self.series);
}, 5000);
}
你能发表更多的代码吗?你的代码看起来很好,也许问题是最初的赋值,即'var series0 = this.series [0]'。 – 2012-08-15 13:37:05
继承人完整的代码http://pastebin.com/4dEZR7YL – ethangk 2012-08-15 13:40:12
@ethangk - 而不是编辑你的问题的答案,只需添加一个答案。回答你自己的问题是完全可以接受的。 – 2013-10-15 14:17:38