我想定期更改单选按钮上的选择。我每隔2000ms就在set循环中调用setTimeOut,但是单选按钮的选择相对于我设置的时间间隔没有变化。
这是我的代码:
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/
感谢你的帮助。
最佳答案
为了避免同时运行所有3个setTimeout,请对计数器使用全局变量而不是for循环,然后将setTimeout添加到autoSlide()函数的末尾。
var n = 1;
function autoSlide(n) {
console.log(n);
document.getElementById("carousel"+n).checked = true;
if (n<3) {
setTimeout(function() {autoSlide(n+1)},2000);
}
}
window.onload = function() {autoSlide(n)};