0
저는 자바 스크립트로 간단한 자동 실행 슬라이드 쇼를 제작하려고합니다. 다음 코드를 실행하면 최대 호출 스택 크기가 초과되었다는 오류 메시지가 나타납니다. 정확히 무슨 뜻인지는 모르지만 컴퓨터가 이미지의 위치를 찾지 못하면 undefined
으로 표시합니다. 내가 어디로 잘못 가고 있는지 말해줘.javascript로 만든 슬라이드 쇼가 호출 스택을 초과합니다.
setTimeout(slideshow(), 3000);
^^
에 도움
var slide = 0 /* the tracker for every picture */
var left_arrow = document.getElementById("arrow_left")
var right_arrow = document.getElementById("arrow_right")
var gallery = document.getElementById("picture")
slideshow(0);
length = images.length - 1
function slideshow(slide) {
images = ["blackchicken.jpg", "bantamchicken.jpg", "goldenegg.jpeg"]
console.log(slide)
pic = '<img src="' + images[slide] + '">'
console.log(pic)
gallery.innerHTML = pic
slide += 1;
if (slide == length) {
slide = 0
}
setTimeout(slideshow(), 3000); // Change image every 3 seconds
}
'setTimeout '과 함께'()'를 사용하지 마십시오. 'setTimeout (slideshow, 3000);'물론, 코드에 다른 문제가 있지만, 이것은 즉각적인 문제를 해결해야합니다. – Gavin
@Gavin이 주석의 확장으로 사용됩니다 :'()'를 사용하면 함수가 실행되고'slideshow' 함수가 계속해서 더 많은 'slideshow'함수를 호출하는 루프로 들어갑니다. 'slideshow' 만 사용한다면 당신은 그 함수를 참조하고 그것을 실행하지 않습니다. 그래서'setTimeout'은 필요할 때만'slideshow' 함수를 호출합니다. –
@HugoFarji @HugoFarji 설명을 추가하는 것에 대해 생각했지만 당신은 그것을 위해했습니다 . 감사! – Gavin