swiper轮播点击跳转,swiper的loop属性是true,当点击第一张图片和向左滑动到最后一张点击时触发不了事件
    原因:因为swiper的无限轮播时会自动复制第一个和最后一个页面进行轮播。但由于只复制页面没有复制点击事件,此时我们用vue写的点击事件在页面循环一周回来遇到复制的页面时,点击事件就会失效。
    解决办法:不使用vue中的@click进行操作,而是在swiper的回调函数中直接操作DOM,这样就可以很好的解决这一问题

    1. <div class="swiper-container sw1">
    2. <div class="swiper-wrapper">
    3. <!-- -->
    4. <!-- <div class="swiper-slide slide" v-for='(item,index) in com' :key='index' @click='jump(item.link,item.uuid)'> -->
    5. <div class="swiper-slide slide" v-for='(item,index) in com' :key='index' :data-link='item.link' :data-uuid='item.uuid'>
    6. <div class="warps">
    7. <img :src="item.logo" alt="" class="logo">
    8. </div>
    9. </div>
    10. </div>
    11. <!-- 如果需要分页器 -->
    12. <div class="swiper-pagination"></div>
    13. </div>
    1. mounted() {
    2. let that = this
    3. new Swiper('.swiper-container', {
    4. direction: 'horizontal', // 垂直切换选项
    5. loop:true,
    6. // 如果需要分页器
    7. pagination: {
    8. el: '.swiper-pagination',
    9. },
    10. on:{
    11. click:function(){
    12. let link = this.clickedSlide.dataset.link;
    13. let uuid = this.clickedSlide.dataset.uuid;
    14. that.jump(link,uuid)
    15. }
    16. }
    17. })
    18. },
    19. jump(link,uuid){
    20. window.location.href = link;
    21. },