2013-07-23 2 views
4

Проблема

Было бы очень удобно, когда я передаю данные в Flot, если я мог бы передать некоторые дополнительные данные, которые я хочу, чтобы получить доступ, когда plotclick событие.Добавление пользовательских атрибутов ФЛОТ данных

Мои данные

Вот несколько стандартных данных;

[{label: 'first', data: 5, color: '#123'}, 
{ label: 'first', data: 10, color: '#456'}] 

Я хочу иметь возможность делать что-то вроде;

[{label: 'first', data: 5, color: '#123', my_custom_attribute: 'some data'}, 
{ label: 'first', data: 10, color: '#456', my_custom_attribute: 'some more data'}] 

Так что внутри моего plotclick событий я мог бы сделать;

$('chart').bind('plotclick', function(event, pos, item) { 
    console.log(item.series.my_custom_attribute) //Or something to that effect 
}); 

То, что я пытался

Я попытался просто вставив выше, и, глядя на вернувшихся содержание item внутри моего plotclick события, он не появляется, чтобы хранить my_custom_attribute в любом месте.

Я прочитал документацию по адресу https://github.com/flot/flot/blob/master/API.md и не смог просветить какую-либо соответствующую информацию.

Я искал google и здесь для ответов и не смог найти тот, который соответствует моим потребностям.

Update

Благодаря Khawer Zeshan для обеспечения решения, это по-прежнему не работает для меня;

Вот данные, которые я передаю;

[{breakdown: "test", color: "#00A4D3", data: 1.5, label: "History"}, 
{breakdown: "test", color: "#1464F6", data: 0, label: "Geography"}] 

Но атрибут breakdown не появляется на выходе для item.

Все остальное о диаграмме, похоже, работает.

+0

Одним из возможных вариантов: http://stackoverflow.com/questions/1448320/flot-is-it- возможно-иметь-третий-y-axis-or-hidden-data-set? rq = 1 – Ryley

+0

Не могли бы вы найти решение для этого, @Toby? –

+0

Вы что-то узнали по этому вопросу? Я не получаю пользовательский атрибут на мероприятии «plothover». Пожалуйста, помогите мне с этим –

ответ

2

Попробуйте

Если посмотреть вверх по пользовательские данные через оригинал data, который вы использовали при инициализации диаграммы. данные все равно будут там. По какой-то причине данные не могут быть доступны напрямую через item ... похоже, что они удалены.

var data = [ 
{ label: "Series1", data: [[1,1]], myData: "test 1"}, 
{ label: "Series2", data: [[1,1]], myData: "test 2"}, 
{ label: "Series3", data: [[1,1]], myData: "test 3"}, 
{ label: "Series4", data: [[1,1]], myData: "test 4"}, 
{ label: "Series5", data: [[1,1]], myData: "test 5"}, 
{ label: "Series6", data: [[1,5]], myData: "test 6"} 
]; 


$.plot($("#placeholder"), data, { 
    series: { 
     pie: { 
      show: true 
     } 
    }, 
    grid: { 
     hoverable: true, 
     clickable: true 
    } 
}); 



$("#placeholder").bind("plotclick", function (event, pos, item) { 
if (item) { 
     console.log(data[item.seriesIndex]); 
    } 
}); 

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

2

Вы получили это право. Вы можете использовать пользовательские параметры данных по своему вкусу

data = [{ data:data1, label:"fixed", lines:{show:true}, my_custom_attribute: 'somedata'}]; 

Чем вы можете получить ваши пользовательские данные следующим образом

$("#placeholder").bind("plotclick", function (event, pos, item) { 
     if (item) { 
      alert(item.series.my_custom_attribute); 
     } 
    }); 

FIDDLE

+0

Это не работает для меня - вы знаете, если это что-то, что было введено в самой последней версии флота? Я думаю, что мы используем точечную версию (я собираюсь обновить это сейчас) – Toby

+3

Это не работает для меня ... – ATOzTOA

+0

@ATOzTOA Не могли бы вы найти какое-либо рабочее решение для этой проблемы? –

0

console.log (данные [item.seriesIndex]);

это работает для меня ...

Для новой версии (0.8) пользовательской переменной непосредственно доступного уровня серии как

console.log (item.series.my_custom_attribute);

Но для меньшей версии seriesIndex способ должен работать ..

Хотел Спасибо @Milk Man

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