4

问题

plotclick如果我可以传递一些我想在事件触发时访问的补充数据,那么当我将数据传递到 flot 时会非常方便。

我的数据

这是一些标准数据;

[{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上的文档,但无法获得任何相关信息。

我已经在谷歌和这里搜索了答案,但找不到适合我需要的答案。

更新

感谢 Khawer Zeshan 提供的解决方案,这仍然不适合我;

这是我传入的数据;

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

但是该breakdown属性没有出现在item.

图表的其他一切似乎都有效。

4

3 回答 3

3

你说对了。您可以根据自己的喜好使用自定义数据参数

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);
        }
    });

小提琴

于 2013-07-23T12:02:49.450 回答
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]);
    }
});

希望有帮助!

于 2013-11-30T02:43:01.833 回答
0

控制台.log(数据[item.seriesIndex]);

这个对我有用...

对于较新的版本(0.8),可以直接在系列级别使用自定义变量,例如

console.log(item.series.my_custom_attribute);

但是对于较小版本的 seriesIndex 方式应该可以工作..

非常感谢@Milk Man

于 2017-04-13T07:11:48.053 回答