关于树视图,树视图是否可以具有点击功能

Regarding tree view, is it possible to have an on click function for the tree view

请问是否可以在ECharts树状视图的叶子上自定义点击功能? 我查看了文档,但找不到任何内容。

如图所示,箭头指向的节点是我希望具有点击功能的地方

sample tree img

请具体说明树叶是什么意思?从技术上讲,除了第一个节点之外的任何节点都是叶子。

  1. 如果您需要处理特定节点上的点击,那么在处理事件之前,您需要按名称严格检查等效目标节点。
// Params object that will passed to our event listener looks like

{
  // ...
  componentIndex: 0,
  componentSubType: "tree",
  componentType: "series",
  data: {
    name: "MergeEdge", // <-------- our target clicked node 
    value: 743
  },
  // ...
}

// Handle click event
myChart.on('click', function(params){
  var data = params.data
  if(data.name === 'MergeEdge'){ // <-------- node name test
    // test passed
    // doing something useful
  }
});

  1. 如果您需要处理对特定节点组的点击,那么您应该整齐地命名节点。假设一个图表有三层(没有根),你只需要处理来自第二层的点击。

让我们准备数据,使命名的同一级别的节点以相似的方式命名:

data: [{
  "name": "root",
  "children": [{
    "name": "node_first_level_01",
    "children": [{
        "name": "node_second_level_01", // <-------- this
        "children": [{
          "name": "node_third_level_01",
          "value": 3938
        }]
      },
      {
        "name": "node_second_level_02", // <-------- this
        "children": [{
          "name": "node_third_level_02",
          "value": 3938,
        }]
      },
      {
        "name": "node_second_level_03", // <-------- this
        "children": [{
          "name": "node_third_level_03",
          "value": 3938,
        }]
      }
    ]
  }]
}],

现在使用第一个示例中的函数,而不是严格检查,我们将检查是否符合正则表达式:

// Handle click event
myChart.on('click', function(params){
  var data = params.data
  var rule = /\w+second\w+/gm; // <-------- regex rule
  if(rule.test(data.name)){    // <-------- test name
    // test passed
    // doing something useful
  }
});