在Echarts中設置Tree的子節點點擊事件

在Echarts中設置Tree的子節點點擊事件

今天用echarts做一個樹形圖,需要在點擊某個子節點的時候,能夠彈出這個節點的信息或者查詢到其他數據,在百度上查了一下,有很多有的方法和我下載的echarts源碼都不一樣,最後自己試了很久才找到方法,特此寫出來,有需要的同學可以參考一下,和網上大多數方法不一樣,但我用的確實是echarts的源碼,下面是代碼,適合直接調用json文件的,不是數據寫在HTML中的

 myChart.on("click", clickFun);
 function clickFun(param) {
    if (typeof param.seriesIndex == 'undefined') {
        return;
    }
    if (param.type == 'click') {
        alert(param.name);
    }
}

下面是完整的代碼


<!DOCTYPE html>
<html style="height: 100%">
   <head>
       <meta charset="utf-8">
   </head>
   <body style="height: 100%; margin: 0">
       <div id="container" style="height: 100%"></div>
       <script type="text/javascript" src="/public/echarts.js"></script>
       <script type="text/javascript" src="/public/jquery-3.3.1.js"></script>
       <script type="text/javascript">
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};
option = null;
myChart.showLoading();
$.get('/public/tree.json', function (data) {
    myChart.on("click", clickFun);
    myChart.hideLoading();
    myChart.setOption(
        option = {
        tooltip: {
            trigger: 'item',
            triggerOn: 'mousemove'
        },
        series:[
            {
                name:'樹圖',
                type: 'tree',
                data: [data],
                left: '2%',
                right: '2%',
                top: '12%',
                bottom: '20%',
                symbol: 'emptyCircle',
                orient: 'vertical',
                expandAndCollapse: true,
                label: {
                    normal: {
                        position: 'top',
                        rotate: -90,
                        verticalAlign: 'middle',
                        align: 'right',
                        fontSize: 12
                    }
                },
                leaves: {
                    label: {
                        normal: {
                            position: 'bottom',
                            rotate: -90,
                            verticalAlign: 'middle',
                            align: 'left'
                        }
                    }
                },
                animationDurationUpdate: 750
            }
        ]
    });
});
;
if (option && typeof option === "object") {
    myChart.setOption(option, true);
}
//關鍵點!
function clickFun(param) {
    if (typeof param.seriesIndex == 'undefined') {
        return;
    }
    if (param.type == 'click') {
        alert(param.name);
    }
}
       </script>
   </body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章