Swiper.js - 未捕获的TypeError:无法读取属性' params'为null

时间:2016-01-06 04:52:37

标签: javascript jquery

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

我收到错误 swiper.js:438 Uncaught TypeError:无法读取属性' params'为null

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

$('.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();
    }
});

})

1 个答案:

答案 0 :(得分:0)

我遇到了类似的错误,我需要在swiper.destroy()上正确删除旧的事件监听器,并附加新的事件监听器,因为之前引用了被破坏的对象。

就我而言,它看起来像这样

// on init
window.addEventListener('keydown', this.handleKeypressFn)

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