我想定期更改单选按钮上的选择。我每隔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)};

10-05 23:38