2014-02-04 3 views
1

Так что я использую Highcharts (личный помощник li3_highcharts) для отображения времени вызова. Я могу использовать функцию для отображения «{point.y}» в всплывающей подсказке, но чтобы сделать ее более читаемой, мне нужно передать «{point.y}» на мою функцию secondToTime(), которая отображает секунды как читаемое время 00:00:00.Highcharts - Использование функции для изменения всплывающей подсказки

Печатается правильное время в секундах:

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

Но когда я пытаюсь и передать «{}» point.y в функции secondsToTime() я просто получить «NaN», потому что его не число. Я также добавил parseInt() к функции incase, которую он передал как строку, но ничего.

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

Есть ли где-нибудь я могу передать эту функцию позже, что позволит ей работать? или некоторые работают вокруг?

Заранее спасибо.

ответ

0

Я не уверен на 100%, это проблема, но похоже, что вы передаете строку с кавычками в свою функцию, а не целое значение. Попробуйте:

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

К сожалению. Посмотрев снова, я думаю, что знаю, в чем проблема.

Вы используете 'pointFormat', который должен взять строку, а не функцию.

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

Если вы хотите, чтобы вызвать функцию, есть опция 'Formatter'

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

Я думаю, вам нужно что-то вроде:

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

Спасибо за ответ. Я пробовал это, и он просто разбивает всю диаграмму. Ничего не отображается ... – Jamie

+0

Хммм я пробовал это, но он просто ломается снова. Используя 'formatter', 'tooltip' => ['formatter' => '(function() {return this.y;})()'] возвращает секунды штрафа. Но опять же, когда я пытаюсь «tooltip» => ['formatter' => '(function() {return secondsToTime (this.y);})()'], ​​у него просто нет всплывающей подсказки. – Jamie

+0

Я не думаю, что вам нужны скобки вокруг функции. – SteveP

0

SteveP является правильный считаю, что вам нужно

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

вместо

'tooltip' => ['formatter' => '(function(){return secondsToTime(this.y);})()'] 
Смежные вопросы