我正在将Swiper 6.4.10用于一个项目。这是我第一次使用Swiper。该网站在一页上有多个滑块。因此,我决定创建一些初始化脚本。我正在使用数据属性来创建滑块设置。每个滑块都有不同的设置。这些设置之一是仅在移动设备上运行滑块,然后在台式机或平板电脑上销毁它。
我已经在这里和Google上阅读了很多文章,但我无法使其正常工作。
关于这一部分:
if(container){
var initID = '#' + container;
if(mobile){
if(mobile_breakpoint.matches){
var init = new Swiper(this, settings)
} else if (!mobile_breakpoint.matches){
var init = this.swiper.destroy();
}
}
//var init = new Swiper(initID, settings)
}
当我在上面使用此代码时,所有旋转木马都被销毁,或者我收到一条错误消息,说this.swiper.destroy
是undefined
。当我像这样运行代码时:
if(container){
var initID = '#' + container;
var init = new Swiper(initID, settings)
}
然后所有轮播都可以正常工作。当我检查数据属性mobile
并尝试销毁轮播时,所有组件都会停止工作。我显然错过了一些东西。
有人知道我做错了什么吗?任何帮助,不胜感激!
您下的“您的错误”else if
首先忘记初始化swiper instance
。
这就是为什么当您取消注释此代码块时-页面损坏(错误:)的原因this.swiper.destroy is undefined
。
要销毁一个实例,您首先应该创建该实例(destroy()是swiper instance的Method )。
const swiper = new Swiper('.swiper-container', {});
swiper.destroy();
否则,您的代码就像编写:
bla_bla.destroy(); /* Uncaught ReferenceError: bla_bla is not defined */
else if (!mobile_breakpoint.matches){
var init = new Swiper(this, settings) /* missing in your code */
init = this.swiper.destroy();
}
通常,您的代码很长==>下次创建一个最小的,可重现的示例(很多与您的问题无关的代码)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句