Highcharts共享工具提示格式化程序并没有通过所有点

时间:2015-10-22 10:48:27

标签: javascript jquery highcharts

我有一张图表,最初显示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
}

上面的控制台日志在控制台中显示以下内容:

Console output

你可以清楚地看到,有时会有2分,有时甚至3分。

我在添加完所有系列后尝试在图表上调用redraw(),但这似乎没什么帮助。

我知道我可能只是破坏图表并从头开始再创建它,但如果可能的话我想避免这种情况。

0 个答案:

没有答案