echarts添加点击事件

文章讲述了在使用Echarts实现柱状图时遇到的两个问题:1)由于数据差异导致短柱体难以点击,通过设置整个柱形区域响应点击解决了这个问题。2)切换标签后点击柱体会触发多次点击事件,通过清除原有点击事件避免了这种情况。
摘要由CSDN通过智能技术生成

echarts柱状图点击事件

最近做echarts柱状图,遇到了两个个问题,此处记录一下:

  1. 点击柱状图某一个柱体,跳转页面,由于数据差异大,有的柱体很长,有的很短,短的柱体很难点击到,需要设置整个柱形区域都可以点击

  1. 页面上有两个标签,切换标签显示不同数据,是对同一个echarts进行的操作,切换标签后点击柱体,会触发多次点击事件

设置柱体的点击事件

myChart.on('click', function (params) {  
    let dataIndex = params.dataIndex;//柱形的下标
});

设置整条柱形所在区域的点击事件

  • 纵向柱状图

myChart.getZr().on("click", (params) => {
    const pointInPixel = [params.offsetX, params.offsetY];
    if (myChart.containPixel("grid", pointInPixel)) {
         let xIndex = myChart.convertFromPixel({ seriesIndex: 0 }, [
            params.offsetX,
            params.offsetY,
        ])[0];//柱形的下标 ,此处取[0]
    }
});
  • 横向柱状图

myChart.getZr().on("click", (params) => {
    const pointInPixel = [params.offsetX, params.offsetY];
    if (myChart.containPixel("grid", pointInPixel)) {
        let yIndex = myChart.convertFromPixel({ seriesIndex: 0 }, [
            params.offsetX,
            params.offsetY,
        ])[1];//柱形的下标 ,此处取[1]
    }
});

一次点击会触发多次点击事件,可以在设置click事件之前清除click事件

myChart.off('click');
或
myChart.getZr().off('click');
//此处根据设置的点击事件不同用不同的清除方法
注意:绑定失效请检查是否设置silent:true,默认为false不可点击
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值