在我的示例中,数据是随机生成的。单击按钮后,应更改缩放类型。
$(function() {
var chartOptions={
chart:{
zoomType : 'x',
events : {
load : function() {
var series = this.series[0];
var chart = this;
setInterval(function() {
var x = (new Date()).getTime(),
y = Math.round(Math.random() * 100);
series.addPoint([x, y]);
chart.redraw();
}, 1000);
}
}
},
series : [{
name : 'AAPL',
data : [null]
}]
};
$('#container').highcharts('StockChart', chartOptions);
$('#button').click(function() {
var chart1 = $('#container').highcharts();
//alert(chart1.series[0].yData);
chartOptions.chart.zoomType = 'y';
$('#container').highcharts(chartOptions);
});
});
单击按钮后,旧图表消失,但未生成新图表。Firebug 显示TypeError: e is undefined
并在行series.addPoint([x, y]);
显示series is undefined
。
chartOptions
是全局的,因此在单击处理程序中,一个属性(zoomType)被更改,其余的应该是相同的。
alert(chart1.series[0].yData);
显示属性 y 数据。所以我尝试了:
$('#button').click(function() {
var chart1 = $('#container').highcharts();
//alert(chart1.series[0].yData);
chartOptions.chart.zoomType = 'y';
var chart2 = $('#container').highcharts(chartOptions);
chart2.series[0].setData(chart1.series[0].data);
chart2.redraw();
});
然后萤火虫显示chart2.series is undefined
。