是否可以在点击点而不是鼠标移动时使用工具提示。
我试过在java脚本警告中显示值,如下所示
plotOptions: {
series: {
cursor: 'pointer',
point: {
events: {
click: function() {
alert ('Category: '+ this.category +', value: '+ this.y);
}
}
}
}
}
要求是在点击时显示高图表工具提示。
请帮忙。谢谢!
答案 0 :(得分:11)
正如@PawelFus所说,它没有得到官方支持,但你可以通过控制工具提示的可见性来捏造它。
首先在图表加载时隐藏它:
chart: {
events: {
load: function(){
$('.highcharts-tooltip').hide();
}
}
},
禁用粘性跟踪,并在mouseout上隐藏它,点击show it:
plotOptions: {
series: {
stickyTracking: false,
events: {
click: function() {
$('.highcharts-tooltip').show();
},
mouseOut: function() {
$('.highcharts-tooltip').hide();
}
}
}
},
这是一个小提琴example。
第一次尝试仅适用于Chrome,另一种是:
禁用默认工具提示:
tooltip: {
enabled: false
},
在图表加载事件中,创建自己的:
chart: {
events: {
load: function(){
this.myTooltip = new Highcharts.Tooltip(this, this.options.tooltip);
}
}
},
在click and mouseout控件中:
plotOptions: {
series: {
stickyTracking: false,
events: {
click: function(evt) {
this.chart.myTooltip.refresh(evt.point, evt);
},
mouseOut: function() {
this.chart.myTooltip.hide();
}
}
}
},
我在IE和Chrome中对此进行了测试,我不再安装Firefox了。
使用新的代码段更新到代码9/7/2017:
$(function () {
$('#container').highcharts({
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
tooltip: {
valueSuffix: '°C',
enabled: false
},
chart: {
events: {
load: function(){
this.myTooltip = new Highcharts.Tooltip(this, this.options.tooltip);
}
}
},
plotOptions: {
series: {
stickyTracking: false,
events: {
click: function(evt) {
this.chart.myTooltip.options.enabled = true;
this.chart.myTooltip.refresh(evt.point, evt);
},
mouseOut: function() {
this.chart.myTooltip.hide();
this.chart.myTooltip.options.enabled = false;
}
}
}
},
series: [{
name: 'Tokyo',
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
}]
});
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://code.highcharts.com/highcharts.src.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
&#13;
答案 1 :(得分:1)
答案 2 :(得分:0)
只为那些与我自己有同样问题的人添加(请在正确回答后查看@kevinandrada的评论,我无法发表评论):如果您在tooltip.refresh
你和tooltip.shared = true
时拨打Uncaught TypeError: Cannot read property 'category' of undefined
#39;将获得例外plotOptions: {
series: {
stickyTracking: false,
events: {
click: function(evt) {
var points = this.chart.series.map(function(d) {
return d.searchPoint(evt, true)
});
this.chart.myTooltip.refresh(points, evt);
},
mouseOut: function() {
this.chart.myTooltip.hide();
}
}
}
},
。
你应该提供一个点数组作为第一个参数:
{{1}}
答案 3 :(得分:0)
可以通过css解决在AlexandraEspichán出色的小提琴中显示的第一个鼠标悬停工具提示的问题,并通过将他的隐身类替换为:
.highcharts-tooltip:not(.clone){
visibility: hidden !important;
}
答案 4 :(得分:-1)
以下是&#34; 无法读取未定义类别&#34;的解决方法。我只是抓住图表的悬停点并将它们传递给刷新。
point: {
events: {
mouseOver: function(evt) {
var hoveredPoints = a.hoverPoints;
a.tooltip.refresh(hoveredPoints);
},
mouseOut: function() {
a.tooltip.hide();
}
}
}