如何解决刷卡器初始化不起作用无法读取未定义的属性“ push”
我想做的事情很简单,或者我想。
Swiper.js API记录了一个布尔参数,称为init
,该布尔参数允许禁用swiper的自动初始化。
我想做的是像这样全局定义swiper:
const carousel = new Swiper(".swiper-container",{
freeMode: true,slidesPerView: "auto",init: false,});
并在点击卡片时将其初始化,如下所示:
$(".card").click(function(){
carousel.init();
});
此问题是浏览器抛出错误,脚本不起作用。这是错误:
无法读取未定义的属性“ push”
我不知道问题出在哪里,因为Swiper API明确指出在将init
参数设置为false之后,您可以通过调用carousel.init()
解决方法
看来我可能已经解决了这个问题。似乎即使您全局声明了swiper,swiper.js也由于某种奇怪的原因而无法访问它,因此我找到了一种解决方法。也许这就是设计的方式,但是至少对我而言,这没有什么意义。
首先,您需要在函数中声明刷卡器,如下所示:
function carouselProperties() {
return new Swiper(".swiper-container",{
init: false,freeMode: true,slidesPerView: "auto",});
}
在那之后,我们进入了应该调用swiper的函数,在本例中为click事件监听器。
$(".card").click(function(){
// Here we define a variable that returns the swiper
const carousel = carouselProperties()
// Afte we define this variable we can finally call the init function
carousel.init();
});
回顾:
- 您定义了一个函数,该函数返回刷卡器及其属性。
- 您在需要检索刷卡器信息的所有其他函数中调用该函数。
我希望这对遇到与我同样问题的人有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。