我有一個php,jquery,jqueryMobile,在一個頁面上有幾個圖表的highcharts頁面。用ajax加載事件來擴展highcharts
不,我添加了ajax調用來加載事件,以獲取實時數據到圖表中。但我必須在每個Highcharts對象中聲明這一點,不管我以哪種方式嘗試它都不能用作全局函數。
下面的代碼我已經和這些部位的工作是否
$(document).ready(function() {
// define sensorName
var sensorName = "rflinkstation";
chart1 = new Highcharts.chart({
"chart": {
"renderTo": sensorName,
"events": {
"load": function() {
var series = this.series[0];
setInterval(function() {
$.ajax({
url: 'sensorAjaxData.php',
success: function(point) {
console.log("ajax request for = " + sensorName);
// add the point
series.addPoint(point, true, true);
},
cache: false,
data: { "sensorName": sensorName,
"stationID": <?php echo $stationID;?>,
}
});
}, 60000);
}
}
},
"series": [{
...
$(document).ready(function() {
// define sensorName
var sensorName = "batteryvolt1";
chart2 = new Highcharts.chart({
"chart": {
"renderTo": sensorName,
"events": {
"load": function() {
var series = this.series[0];
setInterval(function() {
$.ajax({
url: 'sensorAjaxData.php',
success: function(point) {
console.log("ajax request for = " + sensorName);
// add the point
series.addPoint(point, true, true);
},
cache: false,
data: { "sensorName": sensorName,
"stationID": <?php echo $stationID;?>,
}
});
}, 60000);
}
}
},
"series": [{
....
什麼,我試圖做到的,是把「加載「功能,以防止複製粘貼分配代碼。
,但如果我宣佈類似
function getData(sensorName) {
和
events: { load: setInterval(getData(sensorName),6000) }
我鬆散的對象,並得到this.series未定義 我的節目頗有基礎來源於預對象orinted編程和我不充分理解如何擴展高空作業的解釋。此外,Highcharts實時數據示例的寫法是,chart是一個全局變量,僅適用於頁面上的一個圖表。
所以我的問題是我如何擴展Highcharts與負載事件,需要「sensorName」作爲參數,並執行ajax調用和插入返回的數據到正確的圖表?
和側問題,爲什麼是這樣的:
var series = this.series[0];
$.ajax({
...
series.addPoint(point)
...
工作,這不是
$.ajax({
...
this.series[0].addPoint(point)
...