我在Highcharts中有一个下钻图表,我希望在发生下钻时隐藏绘图带和绘图线。
我使用了向下钻取事件来成功隐藏绘图带,但是当显示向下钻取时,Plot带标签似乎重新出现。
看到这个小提琴:http://jsfiddle.net/jmunger/KFpJC/
隐藏或显示波段和线条的代码如下:
events: {
drilldown: function () {
var myAxis = this.xAxis[0];
var myPlotBands = myAxis.plotLinesAndBands;
$.each(myPlotBands, function (i, linesAndBands) {
if (linesAndBands.label) {
linesAndBands.label.hide();
linesAndBands.label.opacity = 0;
}
linesAndBands.svgElem.hide();
});
},
drillup: function () {
$.each(this.xAxis[0].plotLinesAndBands, function (i, linesAndBands) {
linesAndBands.svgElem.show();
if (linesAndBands.label) {
linesAndBands.label.show();
}
});
}
}
有没有办法确保标签隐藏在向下钻取,并重新出现在钻取中?这一行:
linesAndBands.label.hide();
有效隐藏标签,但在下钻图表出现时会重新出现。
答案 0 :(得分:1)
而不是.hide()
,您可以改为使用.css()
:http://jsfiddle.net/KFpJC/2/
events: {
drilldown: function () {
var myAxis = this.xAxis[0];
var myPlotBands = myAxis.plotLinesAndBands;
$.each(myPlotBands, function (i, linesAndBands) {
linesAndBands.svgElem.hide();
if (linesAndBands.label) {
linesAndBands.label.css({
display: 'none'
});
}
});
},
drillup: function () {
$.each(this.xAxis[0].plotLinesAndBands, function (i, linesAndBands) {
linesAndBands.svgElem.show();
if (linesAndBands.label) {
linesAndBands.label.css({
display: 'block'
});
}
});
}
}
最有可能的是,标签会返回,因为在将其他图形放置在绘图区域之后,标签会被定位(x / y位置和可见性)。