高图图形中的导航器不起作用

时间:2017-08-04 09:30:14

标签: javascript highcharts

图表的其余部分正常运行,导航器在我更改时间刻度时会更新,但调整导航器的大小并向左/向右滚动不会做任何事情(不会更新图表)。< / p>

enter image description here

要初始化图表,我这样做:

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等,它会回来。

控制台中没有错误。有什么想法吗?

1 个答案:

答案 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给你时间,以毫秒为单位。