StockChart的highcharts事件处理程序

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)值传递给事件处理程序。这将显示一个附加的图表,其中包

我在看。 我希望事件处理程序在日期范围发生更改时捕获事件。 应针对日期中的所有更改捕获日期中的此更改。例如,单击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
            }
        }]
    })