Highstock错误:拖动一个导航器手柄会更改两个日期

时间:2013-04-10 16:16:53

标签: highstock

拖动其中一个导航器控制柄时,两个日期都会更改。

要重现,请转到http://jsfiddle.net/rNer2/5/并拖动其中一个导航器控制柄。在提供的测试用例中,问题仅在第一次拖动句柄时发生。它实际上也可能发生在其他情况下,但也许在这里修复它也会为其他情况修复它。

请参阅下面的重复代码:

<div id="container" style="height: 400px; min-width: 600px"></div>  
<script src="http://code.highcharts.com/stock/highstock.js"></script>
<script src="http://code.highcharts.com/stock/modules/exporting.js"></script>
<div id="mindate" style="position:absolute;top:40px;left:0px;margin-left:20px;"></div>
<div id="maxdate" style="position:absolute;top:40px;right:0px;margin-right:50px;">

$(function() {
  var data = [];

  for (var i = 1971; i < 2020; ++i) {
      data.push([Date.UTC(i, 0, 1), 1]);
  }

  var chart = new Highcharts.StockChart({
        chart: {
            renderTo: 'container',
            type: 'column',
            events: {
                load: function() {
                    displayDates(this.xAxis[0].getExtremes());
                }
            }
        },
        xAxis: {
            ordinal: false,
            events: {
                afterSetExtremes: function(e) {
                    displayDates(e);
                }
            },
            min: Date.UTC(1984, 0, 1),
            max: Date.UTC(1988, 0, 1)
        },
        series: [{
            data: data
        }]
    });                    
});

function displayDates(e) {
    $('#mindate').html(Highcharts.dateFormat('%m/%d/%y %I:%M:%S%p', e.min));
    $('#maxdate').html(Highcharts.dateFormat('%m/%d/%y %I:%M:%S%p', e.max));    
}

1 个答案:

答案 0 :(得分:0)

请熟悉非常简单的例子:

http://jsfiddle.net/ebLTE/

    $('#container').highcharts('StockChart', {
        chart:{
            type:'column'
        },

        rangeSelector : {
            selected : 1
        },

        title : {
            text : 'AAPL Stock Price'
        },
        xAxis:{
            min:1172707200000,
            max:1175126400000
        },

        series : [{
            name : 'AAPL',
            data : data,
            tooltip: {
                valueDecimals: 2
            }
        }]
    });