Swiper.js-未捕获类型错误:无法读取属性'params'为null

Swiper.js - Uncaught TypeError: Cannot read property 'params' of null

本文关键字:属性 读取 null params js- 类型 错误 Swiper      更新时间:2023-09-26

我使用的是swiper.js和一次swiper1.destroy();运行、重建、滑动到某个幻灯片并单击。

我得到swipper.js:438 Uncaught TypeError:无法读取null的属性"params"的错误

这是代码。我感谢所有的帮助。非常感谢。

$('.call').click(function(e){
e.preventDefault()
$("#menu").addClass("hide");
$("#slider").removeClass("hide");
selector.push("address");
var swiper1 = new Swiper('.swiper1', {
    pagination: '.one',
    paginationClickable: true,
    hashnav: true,
    loop:true,
    initialSlide:0
});
getLocation();
$('.noclick').click(function(e){
    e.preventDefault()
    swiper1.unlockSwipes(); // <-- This seems to be causing the problem
    swiper1.slidePrev(); // <-- This seems to be causing the problem
    player.seekTo(0);
})
$('.yes').click(function(e){
    e.preventDefault()
    swiper1.unlockSwipes(); // <-- This seems to be causing the problem
    swiper1.slideNext(); // <-- This seems to be causing the problem
})
$('.overlay').click(function(e){
    swiper1.unlockSwipes();
    console.log("overlay");
    e.preventDefault()
    $("#menu").removeClass("hide");
    $("#slider").addClass("hide");
    swiper1.destroy();
})
swiper1.on('slideChangeStart', function () {
    var dataindex = $(".swiper-slide-active").data('index');
    console.log(dataindex);
    if(dataindex == 8){
        onPlayerReady();
        swiper1.lockSwipes();
        setTimeout(function(){
            //var state = player.getPlayerState();
            //console.log(state);
            //if (state == 0){
                //alert("This should work");
                swiper1.unlockSwipes();
                swiper1.slideTo(9);
            //}
        },4000);
    }else if(dataindex == 9) {  
        swiper1.lockSwipes();
    }else if(dataindex == 10){
        swiper1.lockSwipes();
    }else{
        stopVideo();
    }
});
})

我得到了类似的错误,我需要正确地删除swiper.destroy()上的旧事件侦听器并附加新的侦听器,因为以前的侦听器是指已销毁的对象。

在我的情况下,它看起来像这个

// on init
window.addEventListener('keydown', this.handleKeypressFn)
..
// than somewhere before destroy()
window.removeEventListener('keydown', this.handleKeypressFn)
swiper1.destroy()