我制作了Flot系列切换示例与Flot工具提示的组合。 但当我有多个系列并隐藏其中一些时,我会收到错误。
在plothover中,如果第一个图表被隐藏,pos.y可能未定义。 相反,可能有 y1、y2、y3 ...(根据显示\隐藏图表?)
相关代码:
$("#placeholder").bind("plothover", function (event, pos, item) {
var str = "(" + pos.x.toFixed(2) + ", " + pos.y.toFixed(2) + ")";
$("#hoverdata").text(str);
. . .
是否有一个简单的函数将 pos.y, y1, y2, y3 作为数组返回?或者如果不是未定义,我是否需要测试每个?
最佳答案
只有当您有多个 y 轴时才会发生这种情况,y1 值是相对于第一个 y 轴的 y 位置,y2 是第二个 y 轴上的位置,依此类推(y 值始终是与 y1 相同)。
如果一个轴被隐藏(因为使用该轴的所有数据系列都被隐藏),则该值丢失(未定义)。但即使所有值(y1、y2、y3 ...)都存在,您也需要知道将哪个值用于悬停的数据点。你可以从
得到这个item.series.yaxis.n
那么你的点的正确 y 位置是
pos['y' + item.series.yaxis.n]
如果您有多个 x 轴,则同样适用。
关于javascript - Flotplothover - pos.y 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35872264/