最近,写Vue项目时用到ECharts,需求是这样的:点击地图下钻,从服务端获取数据,进入下一级城市
做完后发现一个bug:从第二次点击开始,每次点击都会向服务端发起多次请求,并非一次点击一次请求。
经过分析发现,在ECharts渲染后,给地图绑定了click事件。但是没有解除绑定。当后面再次点击,重新渲染的时候,会执行多次click,从而发起多次请求。
解决方案
- 在渲染ECharts的时候,先解除绑定click事件,然后在绑定click事件,就绕开了。
在每次添加点击时间之前 myChart.off("click"); 先用这个清楚点击事件就好了