有个需求,在同一个div里面放置多个地图(切换页面按钮,该div的地图随之变化为相应数据的地图)
发现有个问题就是每个地图都设置了点击事件。然后无论切换到那个地图,都会响应前一个地图的相应事件!!!
找了一下网上的说法,说要先清除点击事件,然后设置点击事件。
myChart.off('click');
myChart.on('click', function(){
// do something
});
但是这种方法在我这里无效,.off is not a function
后来找到了一个方法:
function shareThredOnClick(warnType,index3){
$(".chart-box").html('<div id="chart4" style="width:100%;height:98%;"></div>');
var myChart = echarts.init(document.getElementById('chart4'));
myChart.clear();
myChart.setOption(option3_2);
myChart.on('click',function(param){
toWarnInitSEL(warnType,param.data.code,param.data.name);
});
layer.close(index3);
}
因为我的echarts 是页面一加载的时候就已经加载了配置信息的。
所以我在异步拿到后台数据后,将相应的数据设置到配置中后,再调用上面的方法。先将该div里面的内容替换掉,然后重新设置echarts。并添加点击事件就没有那个问题了。