我有一个场景,我想根据复选框选择来切换系列。我已在图例选项中使用 labelFormatting 将复选框添加到图例中,如:
var otherOptions = {
legend: {
container: legend,
labelFormatter: function (label, series) {
var cb = '<input type="checkbox" name="' + label + '" checked="checked" id="id' + label + '"> ' + label;
return cb;
}
},
};
我添加了图例的点击事件,以便我可以根据选中的项目操作系列。一切正常,除非我在图例中取消选中标签,在重新绘制时它也会从图例中删除该系列线。所以对于例如,下面是前后图像:
之前
后
请注意,在图像“USA”复选框缺失之后。 有什么方法我仍然可以在图例中显示未经检查的“USA”复选框吗?
我在这里查看了这个建议:flot graph, use legend to turn on/off series
但唯一的问题是我不想将图例和复选框图例分开。关于给定链接的问题是在1年前回答的,所以我想我会抓住机会再次提出问题,以防有人知道这样做的方法。
请告诉我。
谢谢!
答案 0 :(得分:6)
如果取消选中该复选框,则不要一起删除所有系列,而是添加空数据。
这样的事情:
function plotByChoice(doAll)
{
$('#legend .legendCB').each(
function(){
if (this.checked)
{
data.push(datasets[someLabel]);
}
else
{
data.push({label: someLabel, data: []})
}
}
);
// plot call etc...
}
工作小提琴是here。