[踩坑]vue-cli3中当swiper4的loop:true时,点击事件失效

项目需求很简单,点击每张轮播图跳转到对应的链接,然而当loop设为true的时候,直接在swiper-slide绑定点击事件是失效的,而将loop设为false又不符合产品需求。

解决思路:
利用swiper的click事件,获取当前的轮播图的索引,从list中找到对应索引的url,再调用跳转方法

话不多说,直接上代码:

<div v-swiper:mySwiper="swiperOption">
	<div class="swiper-wrapper">
		<div class="swiper-slide" 
			v-for="item in dataList" 
			:key="item.id">
			<img :src="item.src">
		</div>
	</div>
</div>
data() {
  	var vm = this // 这一步很关键,用于在swiper内拿到vue变量
  	return {
  		swiperOption: {
	       loop: true,
	       on: {
	        	click: function() {
	        		var curIndex = this.realIndex // 这里的this指向的是swiper
	        		var curUrl = vm.dataList[curIndex].url
	        		vm.toFocusLink(curUrl)
	        	}
	       }
        },
        dataList: [] // 数据
  	}
},
methods: {
	// 链接跳转
	toFocusLink: function(url) {
		console.log(url)
	}
}

踩坑随笔,不足之处,欢迎指教~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值