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
        //...
    })
}