Маркер (jquery-jqplot) с 3 значениями (вместо 2) - PullRequest
1 голос
/ 02 апреля 2011

Я использую плагин jquery jqplot.У меня есть кортеж с тремя элементами, на графике первый элемент кортежа - это xaxis, а yaxis - второй элемент.Маркер должен показывать x, y и третий элемент кортежа.Что-то вроде:

curve1=[**[x,y,date],** [1, 2,'28-May-11'], [2, 4,'30-May-11'], [3,7,'31-May-11']];

Показы маркеров: (1 , 2 , '28-May-11') в первой точке, (2,4,'30-May-11') во второй ...

Есть идеи?

1 Ответ

0 голосов
/ 12 января 2012

Одно решение включает небольшую модификацию jqplot.highlighter.js в методе showTooltip.В этом методе следующая строка используется для назначения html-элемента всплывающей подсказки:

elem.html(str);

Для ваших целей вы можете переопределить это назначение следующим образом:

elem.html('(' + neighbor.data[0] + ', ' + neighbor.data[1] + ', ' + neighbor.data[2] + ')');

как соседний.data используется для представления вашего кортежа, содержащего 3 значения: x, y и date.

В качестве альтернативы ...

Более универсальное решение позволило бы динамически генерировать текст всплывающей подсказки из внешнего интерфейса (вместо того, чтобы иметь дело с фиксированной стратегией форматирования в highlighter.js).В этом случае вы можете заменить вышеприведенное изменение следующим:

elem.html(neighbor.data[2]);

И затем смените третий элемент вашего кортежа с даты (которую, как я предполагаю, используется только для целей всплывающей подсказки) насам текст подсказки.

Например, ваш кортеж может выглядеть так:

curve1=[ [1, 2, '(1, 2, 28-May-11)'], [2, 4, '(2, 4, 30-May-11)'], [3,7, '(3, 7, 31-May-11)'] ];

или даже так:

curve1=[ [1, 2, 'On 28-May-11 there were 2 instances.'], [2, 4, 'Then on 30-May-11 there were 4.'], ...];

Надеюсь, это поможет.

...