0

setinterval で定義された関数内からシリーズ データにアクセスするにはどうすればよいですか。いずれかの値、または配列の長さにアクセスしようとすると、未定義と表示されます。

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);
                }
            }

ありがとう

4

1 に答える 1

1

setInterval のコールバック関数の外でthisへの参照を作成する必要があります。このようなもの:

load : function() {
 ...
 var _self = this;
 setInterval(function() {
   console.log( _self.series );
 }, 5000);
}
于 2012-08-15T13:42:43.003 に答える