从与图表无关的事件中获取当前选定的rangeSelector

时间:2014-07-16 20:36:04

标签: javascript jquery highcharts

我的图表左上角有一个范围选择器,允许用户从1M,3M,6M,1Y,3Y,5Y,All中进行选择。同样的图表还允许用户使用位于图表右上角的日期输入框输入特定日期。

当用户从rangeSelector中选择一个范围时,输入框中的日期会更改为与所选范围匹配,这是非常默认的行为。

我的目标: 我需要保存范围选择,以便当用户返回图表时,我可以设置他离开前的相同范围选择。现在图表默认为1Y。

我尝试了什么:

如果用户专门点击范围选择器选项,我知道我也可以通过使用x轴事件(下面)访问已点击的内容。这对我没有帮助,因为我需要知道从图表外发生的事件中选择了什么。我无法访问该rangeSelector事件。

if (typeof (e.rangeSelectorButton) !== 'undefined') {
   alert('count: ' + e.rangeSelectorButton.count + 'text: ' +          
   e.rangeSelectorButton.text + ' type:' + e.rangeSelectorButton.type);
}

我知道有一种方法可以从日期输入框中获取输入,所以我相信我可以在重新渲染图表时重置这些日期。如果我这样做,rangeSelector将没有突出显示的选项(1M,3M,6M等...),如果它被单击,但图表仍将呈现正确的日期。如果没有更好的选择,我可能会使用这个解决方案。

var minDate = $('input.highcharts-range-selector:eq(0)').val();
var maxDate = $('input.highcharts-range-selector:eq(1)').val();

但是,我仍然想知道是否有办法让我获得当前选择的rangeSelected选项而不与图表交互。换句话说,有没有办法让我获得这些信息而无需点击rangeSelector?

谢谢,

TS

1 个答案:

答案 0 :(得分:1)

您需要捕获afterSetExtremes然后获取值(最小值,最大值)并设置cookie。加载页面时,请检查Cookie并致电setExtremes