Почти все ошибки SetInterval, которые я видел здесь в StackOverflow, связаны с передачей имени функции в виде «строки», но, возможно, мне все еще не хватает какой-либо проблемы с переменной областью. Пожалуйста, порекомендуйте!ReferenceError SetInterval не определен
Я создаю слайд-шоу с возможностью паузы и воспроизведения. Во время игры я хочу, чтобы слайды двигались каждые 3 секунды. Но SetInterval для запуска функции NextSlide не работает после выполнения один раз.
Я пробовал, как ...
SetInterval("nextSlide()", 3000)
SetInterval(nextSlide(), 3000)
var t = SetInterval(nextSlide(), 3000)
var t = SetInterval(function(){nextSlide(), 3000)
... с отказом каждый раз. Что мне здесь не хватает?
var slide_1 = "slide_1";
var slide_2 = "slide_2";
var slideNum = 0;
var odd = true;
var totalMax = 6;
var busy = false;
var allSlides = new Array();
allSlides[0] = "test_01";
allSlides[1] = "test_02";
allSlides[2] = "test_03";
allSlides[3] = "test_04";
allSlides[4] = "test_05";
allSlides[5] = "test_06";
allSlides[6] = "test_07";
function PlaySlide(){
var t = SetInterval(nextSlide(),3000)
document.getElementById("play").style.visibility = "hidden";
document.getElementById("pause").style.visibility = "visible";
}
function nextSlide(){
if(slideNum < totalMax && !busy){
busy = true
document.getElementById("loading").style.zIndex = 4;
slideNum = slideNum + 1
var slide = allSlides[slideNum]
var link = "https://dl.dropboxusercontent.com/u/..." + slide + ".jpg"
odd = !odd
if(odd){document.getElementById(slide_1).src = link} //which <img>.onLoad lauches a fadeIn()
else{document.getElementById(slide_2).src = link}
}
}
JavaScript - это чувствительный к регистру язык. Этот метод называется 'setInterval'. – VisioN
P.S. Это должно быть просто 'setInterval (nextSlide, 3000);'. Не пропускайте строки, передавайте функции. Кроме того, вы хотите передать функцию, а не вызывать ее и передать ее возвращаемое значение. Вы также можете сделать: 'setInterval (function() {nextSlide();}, 3000);'. –