echarts 和 swiper 一起使用时echarts的点击事件无效?

玩个adc这么菜 发布于 2019/01/03 09:38
阅读 1K+
收藏 1

Linux基金会开源软件大学开源技术公开课即将上线,Kubernetes1.19实战讲解!>>>

我将echarts和swiper 一起使用时,echarts的点击事件就无效了。百度搜索说 swiper将页面拷贝了多份,但没拷贝点击事件,那这个点击事件该怎么注册进去呢?我的示例代码如下(我在JS中先new了一个Swiper对象,再初始化了echarts):

<div class="swiper-container">
    <div class="swiper-wrapper">
        <div class="swiper-slide">
            <div id="my" style="width: 100%; height: 100%"></div>
        </div>
        <div class="swiper-slide">Slide 1</div>
        <div class="swiper-slide">Slide 2</div>
    </div>
    <!-- 如果需要导航按钮 -->
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>
</div>
<script type="text/javascript">
    var mySwiper = new Swiper ('.swiper-container', {
        direction: 'vertical', // 垂直切换选项
        loop: true, // 循环模式选项

        // 如果需要前进后退按钮
        navigation: {
            nextEl: '.swiper-button-next',
            prevEl: '.swiper-button-prev',
        },
        on: {
            init: function () {

            }
        }
    });

    var echars = echarts.init(document.getElementById("my"));
    option = {
        tooltip: {
            trigger: 'item',
            formatter: "{a} <br/>{b}: {c} ({d}%)"
        },
        legend: {
            orient: 'vertical',
            x: 'left',
            data:['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
        },
        series: [
            {
                name:'访问来源',
                type:'pie',
                radius: ['50%', '70%'],
                avoidLabelOverlap: false,
                label: {
                    normal: {
                        show: false,
                        position: 'center'
                    },
                    emphasis: {
                        show: true,
                        textStyle: {
                            fontSize: '30',
                            fontWeight: 'bold'
                        }
                    }
                },
                labelLine: {
                    normal: {
                        show: false
                    }
                },
                data:[
                    {value:335, name:'直接访问'},
                    {value:310, name:'邮件营销'},
                    {value:234, name:'联盟广告'},
                    {value:135, name:'视频广告'},
                    {value:1548, name:'搜索引擎'}
                ]
            }
        ]
    };
    echars.setOption(option);
    echars.on("click", function (params) {
        alert("ok")
    })
</script>

 

加载中
0
w
why2016

new Swiper('.swiper-container',{
    touchStartPreventDefault : false,
  })

设置一下touchStartPreventDefault : false就可以

返回顶部
顶部