图表的其余部分正常运行,导航器在我更改时间刻度时会更新,但调整导航器的大小并向左/向右滚动不会做任何事情(不会更新图表)。< / p>
要初始化图表,我这样做:
var highchartLineData = [];
for (var i = 0; i < result.length; i++) {
var parsedDate = new Date(result[i].MyDate.match(/\d+/)[0] * 1);
var lineItem = {
x: parsedDate,
y: parseFloat(result[i].Value)
};
highchartLineData.push(lineItem);
}
$('#highchartLineChart').highcharts().addSeries({
name: "My Chart",
data: highchartLineData
});
然后我有一个ajax方法来填充它,看起来像这样:
var nav = $('#highchartLineChart').highcharts().get('navigator');
nav.setData(highchartLineData);
$('#highchartLineChart').highcharts().xAxis[0].setExtremes();
然后我尝试添加它,只是玩各种尝试来修复它
{{1}}
然而它没有用。虽然您可以左右拖动导航器,但没有任何更新。有时会打破它并且顶部图形消失,但如果按1m 3m等,它会回来。
控制台中没有错误。有什么想法吗?
答案 0 :(得分:2)
在您的代码中,您执行以下操作:
var parsedDate = new Date(result[i].MyDate.match(/\d+/)[0] * 1);
var lineItem = {
x: parsedDate,
y: parseFloat(result[i].Value)
};
将x
设置为Date
对象。
根据Highcharts API on x values (for a line),它应该是毫秒。
x:数字
该点的x值。对于日期时间轴,X值是自1970年以来以毫秒为单位的时间戳。
因此,如果您要执行以下操作:
var lineItem = {
x: result[i].MyDate.match(/\d+/)[0] * 1,
y: parseFloat(result[i].Value)
};
它应该有用。 (假设result[i].MyDate.match(/\d+/)[0] * 1
给你时间,以毫秒为单位。