Javascript HighStock图中单击rangeSelector时的阈值更改

Javascript HighStock图中单击rangeSelector时的阈值更改,javascript,jquery,highcharts,highstock,Javascript,Jquery,Highcharts,Highstock,我需要更改HighStock图中单击rangeSelector时的阈值。 此外,我还需要更改y轴绘制线内的线值 我尝试了以下代码 xAxis: { events:{ setExtremes: function(e) { if (e.trigger == "rangeSelectorButton" &&

我需要更改HighStock图中单击rangeSelector时的阈值。 此外,我还需要更改y轴绘制线内的线值

我尝试了以下代码

xAxis: {    
                events:{
                    setExtremes: function(e) {
                       if (e.trigger == "rangeSelectorButton" && 
                            e.rangeSelectorButton.text == "1m"){
                                  // this.threshold = 20;
                                  alert("on click of 1m range selector");
                                  // for threshold value
                                  this.threshold=20;
                                  this.series[0].plotOptions.threshold=20;
                                   this.plotOptions[0].series[0].threshold=20;
                                   this.rangeSelector.clickButton(0, true);
                                // for changing the line value of plotLines
                                this.yAxis[0].plotLines[0].value=20;

                                            }
                                    },
                            }
            },
对于JSIDLE链接

我已经做了一些警告测试,点击rangeSelector可以正常工作。 我试图更改值,但图表没有更新


任何帮助都将不胜感激

在setExtremes中,
引用
xAxis
对象。
threshold
位于
series
对象上,因此需要获取对正确序列的引用

var series = this.chart.series[0];
然后,您需要用新值更新它

series.update({threshold: threshold}, false);
我将为
重画
参数传递
false
,因为我们还将更新
绘图线
,我们只想重画一次

对于
绘图线
,需要对
yAxis
的引用

var yAxis = this.chart.yAxis[0];
然后,需要将新的
plotLine
设置传递给
update
方法

 yAxis.update({
     plotLines: [{
        value: threshold,
        color: 'green',
        dashStyle: 'shortdash',
        width: 2,
        label: {
             text: 'Last quarter minimum'
        }
     }]
 });

非常感谢,芭芭拉!非常感谢你的回答,尤其是你的回答方式。我意识到,我应该更符合逻辑,同时每次都应用chages来让它工作。谢谢你的帮助