我使用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();
}
});
})
答案 0 :(得分:0)
我遇到了类似的错误,我需要在swiper.destroy()
上正确删除旧的事件监听器,并附加新的事件监听器,因为之前引用了被破坏的对象。
就我而言,它看起来像这样
// on init
window.addEventListener('keydown', this.handleKeypressFn)
..
// than somewhere before destroy()
window.removeEventListener('keydown', this.handleKeypressFn)
swiper1.destroy()