2013-07-25 16 views
10

Sanırım, requestData işlevim çağrıldığında global var chart henüz ayarlanmadığım için.Highcharts.js grafiği oluşturmayacak, hata "Tanımlanamayan 'seriler' dizisini 'okuyamaz"

Bu $(document).ready(function()

 chart = new Highcharts.Chart({ 
      chart: { 
       renderTo: 'container', 
       defaultSeriesType: 'spline', 
       marginRight: 130, 
       marginBottom: 25, 
       events: { 
       load: requestData() 
       } 
      }, 
      title: { 
       text: 'Reporte PMU', 
       x: -20 //center 
      }, 
      subtitle: { 
       text: '', 
       x: -20 
      }, 
      xAxis: { 
       type: 'datetime', 
       tickPixelInterval: 150, 
       maxZoom : 20 * 1000, 
       title: { 
        text: 'tiempo' 
       }, 
       labels : { y : 0, rotation: -60 } 
      }, 
      yAxis: { 
       title: { 
        text: 'Amount' 
       }, 
       plotLines: [{ 
        value: 0, 
        width: 1, 
        color: '#808080' 
       }] 
      }, 
      tooltip: { 
       formatter: function() { 
        return '<b>'+ this.series.name +'</b><br/>'+ 
        this.x +': '+ this.y; 
       } 
      }, 
      legend: { 
       layout: 'vertical', 
       align: 'right', 
       verticalAlign: 'top', 
       x: -10, 
       y: 100, 
       borderWidth: 0 
      }, 
      series: [{ 
       name: 'serieTension', 
       data: [] 
      }] 
     });  
    }); 

içindeki Highcharts benim kodudur ve bu belgenin hazır yanında, Sadece tüm fonksiyonlar dışında

var chart; 

yerleştirmek benim requestData()

 $.ajax({       
      url: 'data2.php', 
      success: function(point) { 
       var series =chart.series[0], 
       shift = series.data.length > 20; //shift if the series is longer than 20 

       //add point 
       chart.series[0].addPoint(point, true, shift); 

       setTimeout(requestData, 1000); 
      }, 
      cache : false 
     }); 
    } 

cevap

7

olduğunu işleyiciyi küresel hale getirecek.

DÜZENLEME:

Ayrıca

, tüm funcions dışında zaten küresel bir değişken olarak bir var grafik var yük çağrısı

load: function() { 
    chart = this; // `this` is the reference to the chart 
    requestData(); 
} 
+0

içinde bir başvuru ekleyin – rrey

+0

mükemmel, teşekkürler. Bu, – rrey

+0

grafiğine başvurmadığım sorun oldu. Başka hiçbir yerde, yük bilgisinde bir referans eklemek için bu bilgiyi buldum. Sonunda grafiklerim canlı verilerle çalıştı. – 0rkan