[英]Keep Getting an Error: 'Uncaught ReferenceError: $ is not defined'
[英]I keep getting an “Uncaught ReferenceError: imgArray is not defined” error
我已经写了一些代码作为淡入和淡出一些图像的对象,只有当我要求构建幻灯片时,我才得到一个
“未捕获的ReferenceError:未定义imgArray”。
任何人都可以帮助我为什么会收到此错误。 谢谢。
const slideShow = {
curIndex: 0,
imgDuration: 10000,
slider: document.querySelector('.banner__slider').childNodes,
imgArray: [
'images/background/img3.jpg',
'images/background/img1.jpg',
'images/background/img2.jpg'
],
buildSlideShow(arr) {
for (i = 0; i < arr.length; i++) {
const img = document.createElement('img');
img.src = arr[i];
slider.appendChild(img);
}
},
slideShow() {
function fadeIn(e) {
e.className = "fadeIn";
};
function fadeOut(e) {
e.className = "";
};
fadeOut(slider[curIndex]);
curIndex++;
if (curIndex === slider.length) {
curIndex = 0;
}
fadeIn(slider[curIndex]);
setTimeout(function () {
slideShow();
}, imgDuration);
},
};
slideShow.buildSlideShow(imgArray).slideShow();
您收到错误,因为代码中没有imgArray
变量。 您可以将其更改为:
slideShow.buildSlideShow(slideShow.imgArray).slideShow();
这解决了一个问题,但创建了另一个问题。 buildSlideShow
方法不返回任何内容。 因此, .slideShow()
方法将再次抛出错误。 由于imgArray
是slideShow
对象的属性,因此您可以使用this
关键字。 将方法更改为:
buildSlideShow() {
for (i = 0; i < this.imgArray.length; i++) {
const img = document.createElement('img');
img.src = this.imgArray[i];
slider.appendChild(img);
}
return this;
}
在buildSlideShow
,使用return this
对象的实例。 这样你可以链接方法。
const slideShow = { curIndex: 0, imgDuration: 10000, // slider: document.querySelector('.banner__slider').childNodes, imgArray: [ 'images/background/img3.jpg', 'images/background/img1.jpg', 'images/background/img2.jpg' ], buildSlideShow() { console.log("inside buildSlideShow method"); for (i = 0; i < this.imgArray.length; i++) { console.log(this.imgArray[i]); const img = document.createElement('img'); img.src = this.imgArray[i]; //slider.appendChild(img); } return this; }, slideShow() { console.log("inside slideShow method") } } slideShow.buildSlideShow() .slideShow();
(我已经注释掉slider
代码)
imgArray
不是全局变量,它是Object slideShow
属性。 您应该将slideShow.imgArray
传递给该函数
slideShow.buildSlideShow(slideShow.imgArray).slideShow();
并且还修复了uildSlideShow(arr){...}
开头缺少b
的类型。 它应该是buildSlideShow(arr){...}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.