我有一张图表,最初显示3个系列的数据。
共享工具提示格式化程序用于初始3系列,这可以正常工作。
然而,在向图表添加2个附加系列之后,似乎在调用formatter函数时,它会在原始3系列或2个新系列上传递点。
这样做的结果是,当鼠标悬停在属于其中一个的点上时,我看到2个新系列的一个工具提示,当鼠标悬停在属于其中一个的点上时,我看到3个原始系列的共享工具提示
我想要的是格式化程序为所有系列传递点数,并且只为所有点提供一个工具提示。
格式化程序代码如下所示:
tooltip: {
formatter: function() {
var s = [],
addedDateLabel = false;
console.log("In tooltip formatter", this);
$.each(this.points, function(i, point) {
var date = new Date(point.x),
month = config.monthNames[date.getMonth()],
year = date.getFullYear();
if (addedDateLabel === false){
s.push('<span><strong>' + month + ' ' + year + '</strong></span><br><br>');
addedDateLabel = true;
}
s.push('<span style="color:' + point.series.color + ';font-weight:bold;">'+ point.series.name +' : \u00a3'+
CurrencyFormatting.formatValue(point.y.toFixed(2)) +'<span><br>');
});
return s.join('');
},
shared: true
}
上面的控制台日志在控制台中显示以下内容:
你可以清楚地看到,有时会有2分,有时甚至3分。
我在添加完所有系列后尝试在图表上调用redraw()
,但这似乎没什么帮助。
我知道我可能只是破坏图表并从头开始再创建它,但如果可能的话我想避免这种情况。