我有工具提示,其中包含数据列表。我希望每个数据都是一个重定向到该特定数据页面的链接。现在Highcharts工具提示的问题在于它随x轴的变化而变化。一旦x轴改变,工具提示就会改变为x轴上的相应组件。因此,如果我的工具提示使用链接,只要我移动到单击链接,工具提示就会更改。为了解决这个问题,我找到了一种方法来在您点击工具提示时立即修复工具提示。这是代码。
plotOptions: {
series: {
cursor: 'pointer',
point: {
events: {
click: function() {
if (cloneToolTip)
{
chart.container.firstChild.removeChild(cloneToolTip);
}
cloneToolTip = this.series.chart.tooltip.label.element.cloneNode(true);
chart.container.firstChild.appendChild(cloneToolTip);
}
}
}
}
},
但即便如此,我还需要在工具提示中创建可点击的链接。我在stackoverflow上看到了一些线程,他们已经完成了它,但它也没有在那里工作。它将它们显示为链接,但它们不可点击。在这里发布一个工作示例。
任何帮助都将不胜感激。
编辑1: - 这些都是我拥有的系列。由于其他一些图形,可能是工具提示被隐藏了。
series: [{
type: 'column',
name: 'Success',
color: '#7deda2',
yAxis: 1,
tooltip: {
pointFormatter: function(){
return "Success: " + this.y + "%" + "<br />" + "Success docs: " + toolTipSuccess[this.series.data.indexOf( this )] + "<br />";
}
},
data: [{{barSuccess}}]
},
{
type: 'scatter',
name: 'Incidents',
yAxis: 1,
data: scatterData,
color: '#FFAE19',
tooltip: {
pointFormatter: function() {
var string = '';
Highcharts.each(toolTip[this.series.data.indexOf(this)], function(p) {
string += '<a href="http://www.google.com">' + p + '</a><br>'
});
return string + "<br />";
}
},
},
{
type: 'spline',
name: 'Failure',
tooltip: {
pointFormatter: function(){
return "Failure: " + this.y + "%" + "<br />" + "Failure docs: " + toolTipFailure[this.series.data.indexOf( this )] + "<br />";
}
},
data: [{{barFailure}}],
marker: {
lineWidth: 3,
lineColor: Highcharts.getOptions().colors[8],
fillColor: 'red'
}
},
{{#if lu}}
{
type: 'spline',
name: 'Unknown',
tooltip: {
pointFormatter: function(){
return "Unknown: " + this.y + "%" + "<br />" + "Unknown docs: " + toolTipUnknown[this.series.data.indexOf( this )] + "<br />";
}
},
data: [{{barUnknown}}],
marker: {
lineWidth: 3,
lineColor: 'blue',
fillColor: '#87CEFA'
}
}
{{/if}}
答案 0 :(得分:1)
工具提示的useHTML属性应该在全局工具提示属性中定义 - 但对于<a>
是不够的。更改pointerEvents属性是必要的 - 您可以在此处查看问题:https://github.com/highcharts/highcharts/issues/5722
tooltip: {
useHTML: true,
style: {
pointerEvents: 'auto'
}
},