解决swiper loop=true点击事件失效问题

当Swiper设置为loop模式时,由于首尾DOM的复制导致部分swiper-slide的点击事件失效。解决办法是在new Swiper时定义click事件,通过event.target获取DOM并执行相应方法。这样可以确保点击事件在循环轮播中正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天遇到一个问题,一个循环轮播的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,
              });

以上就是解决办法了,有问题欢迎留言~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值