echarts 绑定事件重复执行问题。

网上所有,先调用.off 方法后再调用.on 绑定事件。
无效果,查看api未发现off方法,于是采用,先删除原先元素,后重新生成的方式。

场景描述。
用户查询时,每次结果都对应一张饼图。该张饼图绑定click事件。当我多次查询后发现,绑定的事件重复执行了多次。
查看页面元素后发现,每次都在对应的位置生成了新的一张图。

解决方案:将原先div清空,后重新生成。
//将原先div清空。
$("#demoDiv").html('<div id="dotubiaoPie" style="height: 350px; margin-top: 10px;"></div>');
var mychart3 = echarts.init(document.getElementById('dotubiaoPie'));
mychart3.clear();//只是清理画布,而不会删除 生成的元素节点
mychart3.setOption(option);
mychart3.on('click', function (params) {//绑定事件
    $("#timeTablePie tbody").html("<tr id='realTimeTableTbodyPie' style='display:none'> </tr>");
    pieTable(params.name);
}
绑定事件
x
 
1
//将原先div清空。
2
$("#demoDiv").html('<div id="dotubiaoPie" style="height: 350px; margin-top: 10px;"></div>');
3
var mychart3 = echarts.init(document.getElementById('dotubiaoPie'));
4
mychart3.clear();//只是清理画布,而不会删除 生成的元素节点
5
mychart3.setOption(option);
6
mychart3.on('click', function (params) {//绑定事件
7
    $("#timeTablePie tbody").html("<tr id='realTimeTableTbodyPie' style='display:none'> </tr>");
8
    pieTable(params.name);
9
}





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在使用echarts绑定事件时,可以通过以下步骤进行操作: 1. 首先,确保你已经引入了echarts库,并在你的项目中使用了对应的组件。比如,在Vue项目中,可以使用`import myCharts from "echarts"`来引入echarts库。 2. 确认你的项目中是否已经使用了适当的组件来封装echarts,比如Angular-echarts。这些组件会提供一些特定的方法和事件来方便地使用echarts。 3. 如果你希望给时间轴绑定事件,可以使用echarts提供的事件监听器来实现。首先,找到表示时间轴的echarts实例对象,然后使用`on`方法来监听事件。例如,可以使用以下代码给时间轴添加点击事件的监听: ```javascript myCharts.on('timelinechanged', function (params) { // 在这里编写事件处理逻辑 }); ``` 在上面的代码中,`timelinechanged`是指时间轴改变的事件,你可以根据具体需求选择适合的事件。 4. 在事件处理函数中,你可以编写具体的逻辑来响应事件。比如,可以通过参数`params`来获取事件的相关信息,并进行相应的操作。例如,可以使用`params.currentIndex`来获取当前选中的时间轴索引。 需要注意的是,具体的事件绑定方式可能会因为你所使用的封装组件而有所不同。所以,在实际使用中,你还需要查阅echarts和封装组件的相关文档,以便了解详细的使用方法和事件列表。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Echarts使用(Vue) 时间轴事件绑定、单图例多种切换](https://blog.csdn.net/YourNikee/article/details/105709340)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Angularjs-echarts 点击事件](https://download.csdn.net/download/stupidpig0818/9467034)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值