Highcharts - 使用函数更改工具提示

3

我正在使用Highcharts(具体来说是li3_highcharts助手)来显示呼叫时间。我能够使用一个函数在工具提示中显示“{point.y}”,但为了使其更易读,我需要能够将“{point.y}”传递给我的secondsToTime()函数,该函数将秒显示为可读的时间00:00:00。

这将打印正确的秒数时间:

'tooltip' => ['pointFormat' => '(function(){return "{point.y}";})()']

然而,当我尝试将"{point.y}"传递给secondsToTime()函数时,由于它不是数字,我只会得到“NaN”。我还在函数中添加了parseInt(),以防它被传递为字符串,但是没有效果。

'tooltip' => ['pointFormat' => '(function(){return secondsToTime("{point.y}");})()']

有没有任何地方可以稍后传递这个函数,以便它能够正常工作?或者有什么解决方法吗?

提前感谢。

2个回答

0

我不确定这是否是问题,但看起来你正在将带引号的字符串传递到函数中,而不是整数值。请尝试:

'tooltip' => ['pointFormat' => '(function(){return secondsToTime({point.y});})()']

抱歉。我再看一遍,我想我知道问题出在哪里了。

您正在使用“pointFormat”,它应该接受一个字符串,而不是一个函数。

http://api.highcharts.com/highcharts#tooltip.pointFormat

如果你想调用一个函数,有一个“格式化器”选项。

http://api.highcharts.com/highcharts#tooltip.formatter

我认为你需要类似这样的东西:

'tooltip' => ['formatter' => 'function(){return secondsToTime(point.y);}']

谢谢回复。我尝试了这个方法,但它只是破坏了整个图表。什么都没有显示... - Jamie
嗯,我尝试过了,但它又出问题了。使用 'formatter','tooltip'=> ['formatter' => '(function(){return this.y;})()'] 可以正常返回秒数。但是,当我尝试 'tooltip' => ['formatter' => '(function(){return secondsToTime(this.y);})()'] 时,就没有提示框。 - Jamie
我认为函数周围不需要括号。 - SteveP

0

我认为SteveP是正确的,除非你需要

'tooltip' => ['formatter' => 'function(){return secondsToTime(this.y);}']

替代

'tooltip' => ['formatter' => '(function(){return secondsToTime(this.y);})()']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接