2011-11-30 77 views
-1

http://jsfiddle.net/CYJAk/13/提示不悬停在反卷highcharts

看看它,工具提示不显示在所有。 我donno如果工具提示dataFormat正在被其他一些函数覆盖。 和 x轴放大时的日期不显示分钟,我该怎么办?

+0

我解决下面第一个问题,第二,我看到分钟。在“日”我看到21:00,00:00等... – Mark

+0

对不起,我写错了方式, 实际上我想要X轴显示时间与分钟,而不仅仅是:00总是作为边界,它应该像http://www.highcharts.com/stock/demo/intraday那样以30秒的间隔显示。 是否因为系列类型不是'烛台'? 无论如何,下面的答案帮助我在工具提示中显示分钟数就足够了。 如果你找到了tht的解决方案,回复我 谢谢 – cypronmaya

回答

2

Firefox下,我可以看到你在你的提示格式化JavaScript错误是:

Uncaught TypeError: Cannot read property 'name' of undefined 

这似乎违背了docs(也许是因为它不是共享的?)。我发现使用

this.points[0].series.name 

修复此问题。请注意,您还必须将您的this.y更改为类似this.points[0].y才能正常工作。

+0

感谢您的时间, 解决了这个问题。 – cypronmaya

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说,这违背了文档。看起来像一个错误。

+0

是的,它的工作 谢谢 – cypronmaya

+0

@cypronmaya:没问题。 –

0

从完全不同的角度来看 - 我在使用我的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(); 
    } 
}) 

因此,它可能会工作,明确增加了“鼠标悬停”处理程序,并触发在这些情况下,“touchstart” 。

Highcharts检查ontouchstart的存在,以确定启用触摸的设备:

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