आप कोशिश कर सकते हैं इस
छिपा डेटासेट
window.chartName = new Chart(...
window.chartName.store = new Array();
के लिए स्टोर बनाएँ तो चार्ट अद्यतन करने के लिए इस सुविधा का उपयोग, कथा आइटम पर क्लिक करके नियंत्रित किया जाना चाहिए
function updateDataset(legendLi, chart, label) {
var store = chart.store;
var exists = false;
for (var i = 0; i < store.length; i++) {
if (store[i][0] === label) {
exists = true;
chart.datasets.push(store.splice(i, 1)[0][1]);
legendLi.fadeTo("slow", 1);
}
}
if (!exists) {
for (var i = 0; i < chart.datasets.length; i++) {
if (chart.datasets[i].label === label) {
chart.store.push([label, chart.datasets.splice(i, 1)[0]]);
legendLi.fadeTo("slow", 0.33);
}
}
}
chart.update();
}
अद्यतन मत भूलना चार्ट विकल्पों में किंवदंती टेम्पलेट
legendTemplate : "<ul class=\"<%=name.toLowerCase()%>-legend\"><% for (var i=0; i<datasets.length; i++){%><li class=\"legend-item\" onclick=\"updateDataset($(this), window.chartName, '<%=datasets[i].label%>')\"><span style=\"background-color:<%=datasets[i].strokeColor%>\"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>"
शीघ्र ही, मैं इस onclick हैंडलर ली घटक
<li class=\"legend-item\" onclick=\"updateDataset($(this), window.chartName , '<%=datasets[i].label%>')\"><
के लिए उदाहरण fiddle के लिए जोड़ा
बस उस श्रृंखला के बिना चार्ट को फिर से खींचा जाए? – Pointy
@ पॉइंटी मैं सोच रहा था कि ऐसा करने के लिए एक आसान, आत्मनिर्भर और अधिक स्वचालित तरीका था। इस तरह मुझे किंवदंती वस्तुओं को एक घटना को जोड़ना होगा, श्रृंखला को शामिल करना या शामिल करना होगा। कई चार्टों के साथ यह तेजी से अराजकता की ओर जाता है, इमो, लेकिन वैसे भी धन्यवाद। – pomarc
जहां तक मैं कह सकता हूं, विशेष रूप से चार्ट.जेएस में इंटरैक्शन का समर्थन करने के बारे में बहुत परिष्कार नहीं है। – Pointy