今天遇到一个问题,一个循环轮播的swiper,当设置loop为true的时候,部分swiper-slide的点击事件失效了
原因: loop为true时,会自动复制首尾dom,复制时并不会复制dom上的点击事件
解决办法: 去掉swiper-slide上的点击事件,在new Swiper 里定义事件,代码如下
let Swiper = new Swiper("#mySwiper", {
direction: "vertical", //纵向轮播
loop: true, //循环
on:{ //事件
click:(event) =>{
//event.target 为dom元素,可以按需求取它的class或者其他属性
//我的是img所以我取的src属性
let src = event.target.src
this.list.map(item =>{
if(src.indexOf(item.url) != -1) {
this.toSubjectDetail(item) // 执行想要执行的方法
}
})
}
},
autoplay: {
delay: 2000,
disableOnInteraction: false
},
observer: true,
observeParents: true,
});
以上就是解决办法了,有问题欢迎留言~