原理就是:每次要渲染eChart之前,都去手动把eChart对象之前绑定的所有click事件清除掉,然后再重新绑定新的click事件,这样就不会导致渲染多次,多次绑定相同的click事件了。
const myChart = echarts.init(document.getElementById('myChart'));
// 清除画布
myChart.clear();
// 调用setOption,配置eChart参数
myChart.setOption(option);
// 在渲染click事件之前先清除之前绑定的旧的click事件
myChart.off('click');
// 重新绑定新的click事件
myChart.on('click', function (params) {
if (params.value === 'xx') {
// do something
}
});
参考:
关于 eCharts 多次渲染导致点击事件调用多次的bug的解决方案