【发布时间】:2017-02-08 10:24:06
【问题描述】:
我想定期自动更改单选按钮上的选择。我在每 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/
感谢您的帮助。
【问题讨论】:
-
setTimeout期望被传递一个函数。您正在传递autoSlide(n)的返回值,即undefined。同样,您必须为window.onload分配一个函数。目前您正在分配autoSlideCarousel()的返回值,也就是undefined。 “我每 2000 毫秒后在 for 循环中调用 setTimeOut” 不,你没有。循环不会等到超时发生。它将几乎立即调用setTimeout三遍。这些都是之前讨论过的问题,例如setTimeout() is not waiting
标签: javascript settimeout