echarts学习之legend点击事件解读

 更新时间:2023年03月29日 08:50:01   作者:King_960725  
这篇文章主要介绍了echarts学习之legend点击事件解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

echarts legend点击事件

首先,明确本篇文章的重点,主要有三个:

1. 给legend添加点击事件

2. 禁用legend点击事件的默认行为(类型checkbox多选框)

3. 解决点击事件重复触发问题

问题一

let myCharts = Echarts.init(document.getElementById('bar'))
let x = []
let y1 = []
let y2 = []
let idList = []
val.forEach(e => {
  x.push(e.name)
  y1.push(e.invitationNum)
  y2.push(e.totalMoney / 100)
  idList.push(e.id)
}) // 这些都是自己做的一些数据处理,可以忽略
let option = {
  title: {
    text: name + '前十用户',
    left: 'center'
  },
  ...其他代码
}
myCharts.on('legendselectchanged', (e) => {
  alert('点击了') // 如果不加off事件,就会叠加触发
})
myCharts.setOption(option)

问题二

myChart.on('legendselectchanged', function (params) {
    myChart.setOption({
        legend:{selected:{[params.name]: true}}
    })
    console.log('点击了', params.name);
    // do something
});

问题三

let myCharts = Echarts.init(document.getElementById('bar'))
myCharts.off('legendselectchanged') //解决重复触发
...
...
myCharts.on('legendselectchanged', (e) => {
  alert('点击了') // 如果不加off事件,就会叠加触发
})
myCharts.setOption(option)

Echarts自己控制legend点击事件

先看需求

现在想实现的 情况是

  • 一进去页面,所有的 Echarts 中 legend 的所有选项都是默认选中的状态(这是 Echarts 默认的)
  • 然后当“9”号标识,也就是“一#斗”点亮时,与之相对应的“1、2、3”仓位,即“石灰石、污泥球、生白”也必须点亮,
  • 然后 “9”号点亮之后 “1、2、3”号仓位也可以自己控制自己的 点亮还是关闭,
  • 然后当“9”号再次从关闭变成点亮的状态时,“1、2、3” 会再次点亮。
var dou1_legend_flag = false;
myChart.on('legendselectchanged', function (params) {
      var option = this.getOption();
      //当前echarts图例选项
      var select_key = Object.keys(params.selected);
      //当前图例的选项是否选中 选中为true 未选中为false
      var select_value = Object.values(params.selected);
      if (option.legend[0].selected.hasOwnProperty("1#斗")) {
          if (option.legend[0].selected["1#斗"] == true) {
              if (!dou1_legend_flag) {
              	  // 控制legend 的显示和隐藏 直接控制 selected 中对应名称的真假值就可以
                  option.legend[0].selected[option.legend[0].data[0]] = true;
                  option.legend[0].selected[option.legend[0].data[1]] = true;
                  option.legend[0].selected[option.legend[0].data[2]] = true;
                  myChart.setOption(option);
                  dou1_legend_flag = true;
              }
          } else {
              dou1_legend_flag = false;
          }
      }
 });

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Bootstrap如何激活导航状态

    Bootstrap如何激活导航状态

    这篇文章主要为大家详细介绍了Bootstrap如何激活导航状态,包括胶囊式导航中的激活状态和列表导航中的激活状态,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 微信小程序--获取用户地理位置名称(无须用户授权)的方法

    微信小程序--获取用户地理位置名称(无须用户授权)的方法

    这篇文章主要介绍了微信小程序-获取用户地理位置名称(无须用户授权)的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 微信小程序实现拍照功能

    微信小程序实现拍照功能

    这篇文章主要为大家详细介绍了微信小程序实现拍照功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 一文详解JavaScript中生成器函数的妙用

    一文详解JavaScript中生成器函数的妙用

    生成器函数在JavaScript中是一种可以自定义迭代器行为的强大特性,它允许暂停函数的执行,保持函数内部状态,以便在必要时候可以恢复执行,下面我们就来看看它有什么妙用吧
    2023-12-12
  • js获取dom元素宽高的几种方法

    js获取dom元素宽高的几种方法

    这篇文章主要给大家介绍了关于js获取dom元素宽高的几种方法,文中通过示例代码介绍的非常详细,对大家学习或者使用js具有一定的参考学习价值,需要的朋友可以参考下
    2023-08-08
  • js实现简单点赞操作

    js实现简单点赞操作

    这篇文章主要为大家详细介绍了js实现简单点赞操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • nest.js 使用express需要提供多个静态目录的操作方法

    nest.js 使用express需要提供多个静态目录的操作方法

    这篇文章主要介绍了nest.js 使用express需要提供多个静态目录的操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Bootstrap 设置datetimepicker在屏幕上面弹出设置方法

    Bootstrap 设置datetimepicker在屏幕上面弹出设置方法

    datetimepicker默认是在输入框下面弹出的,但是遇到输入框在屏幕下面时,日期选择框会有一部分在屏幕下面,显示不了,因此需要能够从上面弹出,下面小编给大家介绍下Bootstrap 设置datetimepicker在屏幕上面弹出的设置方法
    2017-03-03
  • js实现ArrayList功能附实例代码

    js实现ArrayList功能附实例代码

    ArrayList功能想必大家都有所了解吧,本文使用js实现ArrayList功能并附实例代码,想学习的朋友可以看看
    2014-10-10
  • JavaScript日期库date-fn.js使用方法解析

    JavaScript日期库date-fn.js使用方法解析

    这篇文章主要介绍了JavaScript日期库date-fn.js使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09

最新评论