vue中点击 swiper获取不到索引踩坑记录

给loop:true时轮播中的页面写点击事件,因为swiper的无限轮播时会自动复制第一个和最后一个页面进行轮播。但由于只复制页面没有复制点击事件,此时我们用vue写的点击事件在页面循环一周回来遇到复制的页面时,点击事件就会失效。解决如下:`

  <swiper v-if="mainAchievementList.length" ref="mySwiper" :options="swiperOption">
        <swiper-slide v-for="(item,index) in mainAchievementList" :key="index">
          <img :src="item.image" alt="" style="width:332px;height:120px;cursor: pointer;" :data-   index="index" />
        </swiper-slide>
  </swiper>

data() {
    const _this = this
    return{
      swiperOption: {
        loop: true,
        slidesPerView: 4,
        loopedSlides: 4,
        autoplay: {
          delay: 3000,
          stopOnLastSlide: false,
          disableOnInteraction: false
        },
        on: {
          click: (v) => {
            console.log(_this.mainAchievementList)
            const index = v.target.getAttribute('data-index')
            _this.$router.push({
              path: '/news',
              query: {
                item: JSON.stringify(_this.mainAchievementList[index]),
                isSubject: true
              }
            })
          }
        },

        // 显示分页
        pagination: {
          el: '.swiper-pagination',
          clickable: true // 允许分页点击跳转
        }

      }
    }
 }
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值