-1

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

看看它,工具提示根本不显示。我不知道工具提示数据格式是否被其他功能覆盖。而且放大时x轴上的日期也不显示分钟,我该怎么办?

4

3 回答 3

2

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

Uncaught TypeError: Cannot read property 'name' of undefined

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

this.points[0].series.name

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

于 2011-11-30T19:17:59.440 回答
1

从一个完全不同的角度来看——我在我的超极本上使用 Chrome 时也遇到了 Highcharts 工具提示的问题。在 IE 或 FireFox 中未出现此问题。

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

原来问题在于 Chrome 识别出超极本有触摸屏,并启用了触摸事件。Highcharts (v2.2.5) 不会为支持触摸的设备启用“mouseover”事件,而是启用“touchstart”事件。由于当我的鼠标悬停在图标上时没有出现“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,
于 2014-07-18T17:34:06.210 回答
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所说的那样,这违反了文档。看起来像一个错误。

于 2011-11-30T19:31:16.400 回答