我正在尝试在 highstock slider 移动时绘制一个饼图。
首先,一切正常,我按照预期获得了 highStock 的 axis.extremes.userMin
和 userMax
值
代码
var extremes = chart.xAxis[0].getExtremes();
console.log(extremes);
console.log(chart.xAxis[0]);
console.log("userMin = " + extremes.userMin);
console.log("userMax = " + extremes.userMax);
但是,一旦绘制了饼图,我就会得到上面的值,如在控制台中看到的未定义
。是什么原因导致的或者我如何获得userMin
/userMax
?
<强> jsFiddle Demo
最佳答案
您似乎正在覆盖您的图表
变量。 Use a different variable for the pie and the stock chart.
就您而言,您也可以use this
inside the chart.events.redraw
指向处理程序中的当前(其偶数正在处理)图表。 Demo @ jsFiddle
redraw: function (event) {
if (this.xAxis) {
var extremes = this.xAxis[0].getExtremes();
console.log(extremes);
console.log(chart.xAxis[0]);
console.log("userMin = " + extremes.userMin);
console.log("userMax = " + extremes.userMax);
drawPie();
}
}
<小时/>
处理用例的更好或更正确的方法是将处理程序附加到 xAxis.events.setExtremes
事件而不是 chart.events.redraw
事件,因为您想在 slider 的滑动上执行某些操作。
如文档中所示,事件对象包含新的最小值和最大值,如 event.min
和 event.max
以及 this
代表处理程序内的轴。
这就是您的代码的样子
xAxis: [
{
events: {
setExtremes: function(event) {
console.log(this);
console.log("userMin = " + event.min);
console.log("userMax = " + event.max);
drawPie();
}
}}
],
关于jquery - axis.extremes.userMin 和 userMax 在使用多个图表重绘时未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12535594/