swiper 初始化第一时间获取元素undefined

按道理说初始化回调init执行了说明swiper已应该加载好了,但是获取到的却是undefined,加个定时器又正常了,这是什么问题?

html

<div class="swiper-container">
    <div class="swiper-wrapper">
        <div class="swiper-slide">Slide 1</div>
        <div class="swiper-slide">Slide 2</div>
        <div class="swiper-slide">Slide 3</div>
    </div>

    <!-- 如果需要导航按钮 -->
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>

</div>

JavaScript

window.onload = () => {
    new Swiper('.swiper-container', {
        // loop: true,
        // 如果需要前进后退按钮
        navigation: {
            nextEl: '.swiper-button-next',
            prevEl: '.swiper-button-prev',
        },
        on: {
            init() {
                console.log('初始化完成?')
                console.log(this.navigation.nextEl) //undefined

                setTimeout(() => {
                    console.log(this.navigation.nextEl); //object
                }, 10)
            }
        }
    })
}

clipboard.png

第一时间为什么会输出 undefined

这是官网init的 demo

clipboard.png

阅读 4.3k
1 个回答

你好朋友,官方建议这样调用:mySwiper.navigation.$prevEl

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题