im trying to change the default click on the legend.
this is my code:
legend: {
onClick: function (e, legendItem) {
var index = legendItem.datasetIndex;
var ci = this.chart;
var alreadyHidden = (ci.getDatasetMeta(index).hidden === null) ? false : ci.getDatasetMeta(index).hidden;
var selectedMac;
var selectedLabel = ci.data.datasets[index].label;
if (selectedLabel.length > 3) {
var selectedSplit = selectedLabel.split(' ');
selectedMac = selectedSplit[1];
} else {
selectedMac = selectedLabel;
}
ci.data.datasets.forEach(function (e, i) {
var currentMac;
var currentLabel = ci.data.datasets[i].label;
var meta = ci.getDatasetMeta(i);
if (currentLabel.length > 3) {
var currentSplit = currentLabel.split(' ');
currentMac = currentSplit[1];
} else {
currentMac = currentLabel;
}
if (currentMac == selectedMac) {
// -- non esiste la macchina all interno di questo oggetto
} else {
if (i !== index) {
if (!alreadyHidden) {
meta.hidden = meta.hidden === null ? !meta.hidden : null;
} else if (meta.hidden === null) {
meta.hidden = true;
}
} else if (i === index) {
meta.hidden = null;
}
}
});
ci.update();
},
labels: {
fontColor: 'black'
}
}
This is my chart:
chart
for exemple, i want filter only CDL, so i click it and it works:
chart_after_click
If i press CDL again it back at "original state" and it's ok.
If i press another while CDL is already clicked, the chart not works and i cant click the legend like this:
enter image description here
Can someone help me?
question from:
https://stackoverflow.com/questions/65903681/jquery-chart-js-onclick-not-working-properly-with-many-datas 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…