5

我试图在下面的 xAxis 事件处理程序中设置极端,我得到了未捕获的类型错误。如何在 xAxis 事件处理程序中设置极限?

xAxis: {
    events: {
        setExtremes: function (e) {
            if (e.trigger === "navigator") {
                    forceRebuildSeries(); //Get all data points

                    // Set Extremes (redisplay with new data points)
                    this.chart.xAxis[0].setExtremes(e.min, e.max);  //Uncaught TypeError: Property 'setExtremes' of object #<Object> is not a function 
            }
        }
    }
},

我将不胜感激任何可用的帮助或解决方法。谢谢。

4

2 回答 2

5

我知道这有点晚了,只是想向未来的访客添加我的答案。

Highchart 不允许从 setExtremes 事件处理程序内部调用 setExtremes 以避免无限循环。这就是你得到错误的原因。

但是,您可以插入超时以绕过此保护:

 xAxis: {
     events: {
         setExtremes: function (e) {
             if (e.trigger === "navigator") {
                 var c = this;
                 setTimeout(function() {
                     forceRebuildSeries(); //Get all data points

                     // Set Extremes (redisplay with new data points)
                     c.chart.xAxis[0].setExtremes(e.min, e.max);  

                 }, 1);
             }
         }
     }
 }
于 2015-01-28T10:05:32.117 回答
0

看起来 highcharts 实际上在回调期间将 xAxis 对象的所有属性设置为 null。尽管您可能只需注释掉给出错误的行并且没问题,但您不需要这样做

于 2013-09-13T17:11:34.863 回答