2013-02-26 6 views
0

Я хочу разместить текстовый элемент (или два) под легендой, выровненный с правой стороны, но я не могу получить согласованные координаты.Определить, когда Legend готова

Предупреждение: Я являюсь родственником noob в SVG.

У меня есть серия наборов данных, для которых я хочу показать графики. Когда я перехожу от одного к другому, я добавляю новые сериалы и удаляю старые. После каждого обновления я пытаюсь поместить строку, содержащую средний набор данных, ниже легенды. Проблема, с которой я сталкиваюсь, заключается в том, что все остальные времени, когда я запрашиваю атрибуты x & y, строка заканчивается за пределами диаграммы. В другой половине времени я получаю прекрасный результат.

код, я использую, чтобы поместить эту строку в:

var tbl=table[3]; 
$('.usData').remove(); 

//get legend x & y 
startX = chart.legend.group.translateX; 
endX = startX + chart.legend.legendWidth; 
startY = chart.legend.group.translateY; 
endY = startY + chart.legend.legendHeight; 
$(tbl.usAvg).each(function(i){ 
chart.renderer.text("National Avg: " + formatData(this,tbl.format), endX, endY+(i*15)+15).attr({'text-anchor':'end',zIndex:12, class:'usData'}).add(); 

То, что я думаю, что происходит в том, что легенда начинается за пределами участка и переводится в это положение. Поэтому я не могу надежно «захватить» точные координаты, пока не будет сделан рендеринг.

Итак, мой вопрос: Есть ли способ определить (событие), когда легенда закончена, или мне просто нужно включить тайм-аут и подождать?

ответ

0

Я предлагаю более простое решение, с установкой useHTML для легенды. http://jsfiddle.net/aWFYr/1/

+0

Да, но тогда добавленный div в экспортированном изображении/pdf отсутствует. Это часть конечной цели. – astangelo

+0

Не отображается в экспортированном изображении, так как это динамический контент, но при экспорте графика он создается снова. Вы можете попробовать добавить этот инструмент в событие загрузки: http://api.highcharts.com/highcharts#chart.events.load –

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