Я хочу автоматически менять выбор на переключателях с регулярным интервалом. Я вызываю setTimeOut в цикл for через каждые 2000 мс, но выбор переключателя не меняется в отношении установленного мною интервала. Вот мой код: HTML:Выбор переключателей радио на регулярном интервале не работает
<input type="radio" id="carousel1" name="carousel" checked="checked">
<input type="radio" id="carousel2" name="carousel">
<input type="radio" id="carousel3" name="carousel">
Javascript:
function autoSlideCarousel() {
for (var n = 1; n <= 3; n++) {
setTimeout(autoSlide(n), 2000);
}
}
function autoSlide(n) {
console.log(n);
document.getElementById("carousel"+n).checked = true;
}
window.onload = autoSlideCarousel();
Вот JSFiddle ссылку для большей ясности: https://jsfiddle.net/16zmfb12/1/
Цените вашу помощь.
'setTimeout' ожидает передачи функции. Вы передаете возвращаемое значение 'autoSlide (n)', которое является 'undefined'. Аналогично, вам нужно назначить функцию 'window.onload'. В настоящее время вы назначаете возвращаемое значение 'autoSlideCarousel()', которое также является 'undefined'. * «Я вызываю setTimeOut в цикл for после каждых 2000 ms» * Нет, вы этого не делаете. Цикл не дожидается, пока не произойдет тайм-аут. Он будет вызывать 'setTimeout' три раза почти мгновенно. Это все проблемы, которые обсуждались ранее, например. [setTimeout() не ждет] (http://stackoverflow.com/q/15171266/218196) –