echart legend click event
by fangbinwei
HTML
<div id="container" style="height: 100%"></div><script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.1.0.rc2/echarts-en.common.js"></script>
CSS
html,body {
height: 100%;
}
JavaScript
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};
option = null;
app.title = '环形图';
option = {
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b}: {c} ({d}%)"
},
legend: {
orient: 'vertical',
x: 'left',
data:['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
},
series: [
{
name:'访问来源',
type:'pie',
radius: ['50%', '70%'],
avoidLabelOverlap: false,
label: {
normal: {
show: true,
position: 'center',
textStyle: {
fontSize: '30',
fontWeight: 'bold'
},
formatter: 'center text',
color: '#000'
}
},
labelLine: {
normal: {
show: false
}
},
data:[
{value:335, name:'直接访问'},
{value:310, name:'邮件营销'},
{value:234, name:'联盟广告'},
{value:135, name:'视频广告'},
{value:1548, name:'搜索引擎'}
]
}
]
};
;
var triggerAction = function(action, selected) {
let legend = [];
for ( let name of Object.keys(selected)) {
legend.push({name: name});
}
myChart.dispatchAction({
type: action,
batch: legend
});
};
if (option && typeof option === "object") {
myChart.setOption(option, true);
myChart.on('legendselectchanged', (params) => {
let selected = params.selected;
triggerAction('legendSelect', selected);
// do something about click event
//...
})
}