StockChart的highcharts事件处理程序
我在看。 我希望事件处理程序在日期范围发生更改时捕获事件。 应针对日期中的所有更改捕获日期中的此更改。例如,单击rangeSelector中的a按钮时,或使用日期选择器输入日期时,或由于日期范围的更改而在图形中进行任何其他更改时。我需要Highcharts.dateFormat(“%Y-%m-%d”,event.xAxis[0].min) 和Highcharts.dateFormat(“%Y-%m-%d”,event.xAxis[0].max)值传递给事件处理程序。这将显示一个附加的图表,其中包含已选择的新日期范围。 当做StockChart的highcharts事件处理程序,highcharts,eventhandler,Highcharts,Eventhandler,我在看。 我希望事件处理程序在日期范围发生更改时捕获事件。 应针对日期中的所有更改捕获日期中的此更改。例如,单击rangeSelector中的a按钮时,或使用日期选择器输入日期时,或由于日期范围的更改而在图形中进行任何其他更改时。我需要Highcharts.dateFormat(“%Y-%m-%d”,event.xAxis[0].min) 和Highcharts.dateFormat(“%Y-%m-%d”,event.xAxis[0].max)值传递给事件处理程序。这将显示一个附加的图表,其中包
Joseph您可以使用图表上的
加载
事件,然后为范围选择器
按钮定义处理程序:
chart : {
events: {
load: function () {
var chart = this;
var buttons = this.rangeSelector.buttons;
buttons[0].on('click', function (e) {
alert(Highcharts.dateFormat('%Y-%m-%d',chart.xAxis[0].min));
alert(Highcharts.dateFormat('%Y-%m-%d',chart.xAxis[0].max));
});
}
}
}
这是范围选择器的第一个按钮:
然后可以为所有按钮添加处理程序
编辑:
如上所述,您可以使用afterSetExtremes
和setExtremes
事件,它检查更改图表范围的每个操作,包括输入日期或拖动光标选择日期范围
但不利的一面是当您使用导航器的拖动时,因为它不会等到您松开鼠标按钮并触发范围内每个点变化的事件。如果您不介意的话,那么这将是一个很好的解决方案:您可以理解谢谢您回答我的问题
我试图将输入信息发送到我的第二张图表上,该图表与同一页上的股票图表一起显示。如果股票图表的日期选择器发生任何变化,我需要x轴坐标作为表单元素提供给第二张图表。
我使用以下代码作为解决方案
chart: {
events: {
redraw: function (e) {
fromDateStockChart=Highcharts.dateFormat('%Y-%m-%d',this.xAxis[0].min);
toDateStockChart=Highcharts.dateFormat('%Y-%m-%d',this.xAxis[0].max);
/*console.log('fromDateStockChart='+fromDateStockChart
+' toDateStockChart'+toDateStockChart);*/
form = document.searchFilters;
form.date_from.value = fromDateStockChart;
form.date_to.value = toDateStockChart;
}
}
}
问候
约瑟夫你应该看这个例子
但是,如果要输入日期或拖动光标以选择日期范围,该怎么办。在这些场景中,是否会生成任何事件?
$('#container').highcharts('StockChart', {
xAxis : {
events: {
afterSetExtremes: function () {
alert(Highcharts.dateFormat('%Y-%m-%d',this.min));
alert(Highcharts.dateFormat('%Y-%m-%d',this.max));
}
}
},
rangeSelector : {
selected : 1
},
title : {
text : 'AAPL Stock Price'
},
series : [{
name : 'AAPL',
data : data,
tooltip: {
valueDecimals: 2
}
}]
})