Я не понимаю, что я здесь делаю неправильно. У меня есть несколько других утверждений, но только первый будет срабатывать. Я понял, что это потому, что они все проверяли переменную одновременно, а затем функция была закончена. Поэтому я поместил все это в setTimeout, чтобы он постоянно вызывал эту функцию, чтобы проверить, изменилось ли число. как я должен это делать?
var slide=1;
alert(slide);
setTimeout(function(){
if (slide == 1){
slide = '2';
alert(slide);
$('img.slidephoto').attr('src',"images/slide2.png");
}
else if (slide == 2){
slide = '3';
alert(slide);
$('img.slidephoto').attr('src',"images/slide3.png");
}
}, 1000);
Необходимо использовать setInterval() для выполнения функции с регулярным интервалом, setTimeout() выполняет функцию только один раз
var slide = 1;
alert(slide);
setInterval(function () {
if (slide == 1) {
slide = '2';
alert(slide);
$('img.slidephoto').attr('src', "images/slide2.png");
} else if (slide == 2) {
slide = '3';
alert(slide);
$('img.slidephoto').attr('src', "images/slide3.png");
}
}, 1000);
Его можно лучше написать
var slide = 1;
setInterval(function () {
slide++;
$('img.slidephoto').attr('src', "images/slide" + slide + ".png");
//reset the value to 1 on upper bound
// ex: slide = slide > 3 ? 0: slide; if there are maximum of 3 images like slide1.png, slide2.pnd and slide3.png
}, 1000);
slide = 3
здесь никогда не побеждает.