2015-12-10 5 views
1

Я просто пытаюсь использовать подсказку pointFormatter в Highcharts, чтобы вернуть this.name (по крайней мере, на данный момент у меня есть некоторое форматирование, которое нужно сделать после этого). Проблема заключается в том, что this.point возвращает один и тот же объект дважды - это правильный объект, но это означает, что он отображается дважды в моей подсказке.Highcharts 'this' возвращает тот же объект дважды

Here является JSFiddle показывает проблему, с всплывающей подсказкой, начиная от линии 242.

Это код, который я использовал:

tooltip: { 
    pointFormatter: function(){ 
    var point = this.name; 
    console.log(point); 
    return point; 
    }, 
    followPointer: true 
} 

Вход в консоль подтверждает тот факт, что объекты в настоящее время вернулся дважды.

Любая помощь будет высоко оценена, поскольку я не могу найти, что может вызвать проблему.

Спасибо!

+0

Вы просто редактируете тело всплывающей подсказки, чтобы сделать его тем же самым, что и заголовок. Если вы вернете «abc», вместо этого вы не получите этого дважды. Вы должны отредактировать заголовок с помощью 'headerFormat' или просто использовать функцию' formatter' вместо 'pointFormatter'. –

+0

Ah ok @Halvor, это имеет смысл. Я действительно задавался вопросом, была ли проблема с заголовком/телом всплывающей подсказки, но я не мог это решить. Если вы хотите опубликовать это в качестве ответа, я соглашусь. Благодарю. – NickH

ответ

1

pointFormatter (API) только изменяет тело подсказке, поэтому в данный момент ваше тело возвращается точно такую ​​же вещь, как заголовок , Два разумных варианта:

  • Вы можете редактировать заголовок всплывающей подсказки с помощью headerFormat (API), чтобы отличать их.

  • Вы можете изменить всю подсказку по своему усмотрению, используя функцию formatter (API).

Обратите внимание, что formatter не существует в plotOptions, где вы код в настоящее время проживает. Он доступен только через корень tooltip.

0

Проблема заключается в указателе на несколько элементов. Итак, ваш код работает хорошо, но есть много наложений, поэтому он повторяет несколько точек. Объявите уаг tmpPoint в:

$(function() { 
var tmpPoint; 

и чем:

tooltip: { 
      pointFormatter: function(){ 
      var point = this.name; 
      if (tmpPoint!=point){ 
       tmpPoint=point; 
       console.log('bb'+point); 
       return point; 
      } 
      }, 
      followPointer: true 
     }, 
Смежные вопросы