[英]Highcharts shared tooltip making a percentage difference between series
[英]Highcharts shared tooltip between charts with multiple series and shared tooltip
我正在尝试设置图表之间的共享工具提示。 仅当工具提示未shared: true
时才有效shared: true
,如果我设置了shared: true
,则会出现错误:
TypeError: 'undefined' is not an object (evaluating 'a[0].category') highcharts.js:3259
我准备了示例: http : //jsfiddle.net/CAKQH/24408/
如果将光标移到第一张图表上-很好用,也可以在注释shared: true
可以,但是如果将光标移到第二张图表上,则会出现错误。
有人遇到这个错误了吗? 请帮我解决。
发生此问题的原因是您shared: true
在一张图表上为shared: true
,而在另一图表上为默认(false)。 这是一个问题,因为tooltip.refresh
方法将采用不同的路径,并根据共享设置为true或false的图表使用不同的输入。
您可以在源代码的 8806行中找到有关tooltip.refresh
方法的tooltip.refresh
:
// shared tooltip, array is sent over
if (shared && !(point.series && point.series.noSharedTooltip)) {
....
}
// single point tooltip
else {
....
}
您可以通过在syncTooltip
方法内进行分支来处理这种情况( 例如JFiddle )来解决此问题:
function syncTooltip(container, p) {
var i = 0;
for (; i < charts.length; i++) {
if (container.id != charts[i].container.id) {
if(charts[i].tooltip.shared) {
charts[i].tooltip.refresh([charts[i].series[0].data[p]]);
}
else {
charts[i].tooltip.refresh(charts[i].series[0].data[p]);
}
}
}
}
这样,您可以在两个图表上自由地将shared设置为true或false。
不幸的是,您的plotOptions.series.point.events.mouseOver
-event不能捕获通过shared: true
功能“选择”的点,因此您将不得不找到一个替代事件来正确捕获这种情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.