echarts 树状图关闭关闭节点默认事件
时间: 2023-07-11 17:52:30 浏览: 95
在 ECharts 中,可以通过配置 `series` 中的 `emphasis` 和 `blur` 来控制节点的高亮和失焦状态。在这两个状态下,可以通过设置 `itemStyle` 的 `opacity` 和 `borderColor` 来控制节点的显示样式。如果要完全关闭节点的默认事件(例如单击节点时不触发展开/收起子节点的行为),可以在 `emphasis` 和 `blur` 中都设置 `silent: true`,并在 `click` 事件中手动控制节点的展开/收起状态。
以下是示例代码:
```js
option = {
series: [{
type: 'tree',
data: [...], // 树状图的数据
emphasis: {
// 高亮状态
itemStyle: {
opacity: 0.8,
borderColor: 'red'
},
silent: true // 关闭默认事件
},
blur: {
// 失焦状态
itemStyle: {
opacity: 1,
borderColor: 'gray'
},
silent: true // 关闭默认事件
},
label: {
show: true
},
leaves: {
label: {
show: true
}
},
expandAndCollapse: true, // 允许展开/收起节点
animationDuration: 550,
animationDurationUpdate: 750
}],
// 添加点击事件
// 在点击事件中手动控制节点的展开/收起状态
// 并阻止事件冒泡以关闭默认事件
series: [{
type: 'tree',
data: [...],
// ...
emphasis: {
// ...
focus: 'descendant',
// 添加点击事件
// 在点击事件中手动控制节点的展开/收起状态
// 并阻止事件冒泡以关闭默认事件
onclick: function(params) {
params.event.stopPropagation();
var node = params.data;
node.expanded = !node.expanded;
myChart.setOption({
series: [{
data: [node]
}]
});
}
},
// ...
}]
};
```
在上面的代码中,我们在 `emphasis` 中设置了 `silent: true` 关闭默认事件,并在 `onclick` 事件中手动控制节点的展开/收起状态。在点击事件中,我们首先调用 `params.event.stopPropagation()` 阻止事件冒泡,然后获取到当前节点 `node`,将其 `expanded` 属性取反,最后通过 `myChart.setOption()` 方法更新树状图的数据。这样,就可以实现完全关闭节点默认事件的效果。
阅读全文