javascript - 定期选择单选按钮不起作用

标签 javascript settimeout

我想定期自动更改单选按钮的选择。我每 2000 毫秒后在 for 循环中调用 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 个 setTimeouts,请使用全局变量作为计数器而不是 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)};

关于javascript - 定期选择单选按钮不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39781380/

相关文章:

Javascript 按键 + setTimeout()

javascript - 如何在 RadioButton-Selection 上调用 Javascript 函数?

javascript - 为什么 document.body.style.backgroundImage 名称没有显示在警报中?

javascript - 当用户决定在 onbeforeunload 事件后留下时执行操作

javascript - 使用 setTimeouts 排队的浏览器功能可以自动放弃吗?

javascript - 带有 addEventListener 的 setTimeout 问题

javascript - 获取月份差异javascript

javascript - 空的 javascript 链接是什么意思?

javascript - 如何增加内联样式的填充值

javascript - XHR/setTimeout/Promise 在 Chrome 中停止滚动之前不会完成