2013-03-13 2 views
0

Есть ли способ предотвратить скрытие последнего объекта легенды, который отменяется в линейной диаграмме?Линейный график HighCharts - Как предотвратить отмену последнего элемента легенды?

я достиг его на колонке/круговые диаграммы, используя legendItemClick событие:

legendItemClick: function (e) { 
    var self = this; 
    var hiddenSeries = function() { 
     var counter = 0; 
     $.each(self.series.points, function (i, v) { 
      if (!v.visible) { 
       counter++; 
      } 
     }); 
     return counter; 
    } 

    if (self.series.points.length - 1 == hiddenSeries() && self.visible) { 
     return false; 
    } else { 
     return true; 
    } 
} 

и она работает очень хорошо, как вы можете видеть на следующем fiddle, однако, он не работает с линией так как объект «this» не содержит свойства «series.points».

ответ

0

Вы можете обратиться к переменной диаграммы, чтобы получить информацию о серии. Я сделал это так:

  legendItemClick: function (e) { 
       var visibleSeries = function() { 
        var counter = 0; 
        $.each(chart.series, function (i, v) { 
         if (v.visible) { 
          counter++; 
         } 
        }); 
        return counter; 
       } 
       if (visibleSeries() <= 1 && this.visible) { 
        return false; 
       } else { 
        return true; 
       } 
      } 

http://jsfiddle.net/4tpsG/

+0

Brilliant! не заметил chart.series! Весьма признателен! – silicakes

Смежные вопросы