修改圖例點擊事件樣例代碼:
- 當第一次點擊圖例時,只顯示點擊的圖例。
- 當還剩一個圖例被取消選中後,自動全選中所有圖例。
var triggerAction = function(action, selected) {
legend = [];
for ( name in selected) {
if (selected.hasOwnProperty(name)) {
legend.push({name: name});
}
}
myChart.dispatchAction({
type: action,
batch: legend
});
};
var isFirstUnSelect = function(selected) {
var unSelectedCount = 0;
for ( name in selected) {
if (!selected.hasOwnProperty(name)) {
continue;
}
if (selected[name] == false) {
++unSelectedCount;
}
}
return unSelectedCount==1;
};
var isAllUnSelected = function(selected) {
var selectedCount = 0;
for ( name in selected) {
if (!selected.hasOwnProperty(name)) {
continue;
}
if (selected[name] == true) {
++selectedCount;
}
}
return selectedCount==0;
};
myChart.on('legendselectchanged', function(obj) {
var selected = obj.selected;
var legend = obj.name;
if (selected != undefined) {
if (isFirstUnSelect(selected)) {
triggerAction('legendToggleSelect', selected);
} else if (isAllUnSelected(selected)) {
triggerAction('legendSelect', selected);
}
}
});