在highcharts中悬停时,工具提示不会显示

时间:2011-11-30 18:19:20

标签: highcharts highstock

http://jsfiddle.net/CYJAk/13/

看看它,工具提示根本没有显示。 我不知道如果tooltip dataFormat被其他一些功能覆盖了。 并且 放大时x轴上的日期不会显示分钟数,我该怎么办?

3 个答案:

答案 0 :(得分:2)

在Firefox下,我可以看到你的工具提示格式化程序中的javascript错误是:

Uncaught TypeError: Cannot read property 'name' of undefined

这似乎与docs相反(也许是因为它没有共享?)。我发现使用

this.points[0].series.name

解决了这个问题。请注意,您还必须将this.y更改为类似的this.points[0].y才能使其正常工作。

答案 1 :(得分:1)

从完全不同的角度来看 - 在Ultrabook上使用Chrome时,我也遇到了Highcharts工具提示的问题。 IE或FireFox中没有出现此问题。

我没有使用共享系列,因此上述解决方案不适用。

原来问题是Chrome认识到Ultrabook有触摸屏,并启用了触控事件。 Highcharts(v2.2.5)不支持鼠标悬停'支持触摸的设备的事件,但启用了“触摸启动”功能。事件。作为' touchstart'当我的鼠标悬停在图标上时没有出现,工具提示从未出现过。

这是Highcharts中基于设备类型添加处理程序的行:

.on(hasTouch ? 'touchstart' : 'mouseover', function (e) {
    series.onMouseOver();
    if (e.target._i !== UNDEFINED) { // undefined on graph in scatterchart
        points[e.target._i].onMouseOver();
    }
})

因此,它可能会明确地添加一个鼠标悬停'处理程序并触发“触摸启动”'在这些情况下。

Highcharts会检查是否存在ontouchstart以确定启用触控功能的设备:

hasTouch = doc.documentElement.ontouchstart !== UNDEFINED,

答案 2 :(得分:0)

试试这个:

formatter: function() {
    var point = this.points[0],
        x = point.x,
        y = point.y,
        seriesName = point.series.name;

    return Highcharts.dateFormat('%A,%b %e,%Y, %H:%M', x) +'<br/> '+'<strong>'+ seriesName +'</strong>'+ y;
}

我一直在使用Highcharts,但从未使用过Highstock,但是Mark表示这违反了文档。看起来像个bug。