【发布时间】:2015-10-19 02:42:21
【问题描述】:
我目前有一个函数使用setTimeout() 函数内的alert() 函数创建警报,并且嵌套在for 循环内。
所以它看起来像这样
for(i<10){
setTimeout(function(param){
alert(param);
3000, param);
i++
}
我这样做时遇到的问题是,计时器仅在我在警报框上单击“确定”后才开始计时。
所以弹出第一个警报,我点击确定,3 秒后出现第二个框。
相反,我希望能够出现第一个警报,等待 3 秒,按确定,然后立即出现第二个警报
我该怎么做?
编辑:我按照建议尝试了 setInterval 而不是 setTimeout ,但它似乎让我陷入了设定的间隔循环?
这是我的代码:
for (var product in cart) {
alert(product);
setTimeout(function(item) {
alert("Name: " + item + ": Quantity: " + cart[item]);
}, i * 3000, product);
i++;
}
我刚刚尝试用 setInterval 替换 setTimeout,之后我也尝试了 clearInterval,但该框甚至没有出现
【问题讨论】:
-
您应该使用
setInterval而不是您所做的。此外,您的 for 循环无效。如果有的话,它应该是一个while循环...... -
项目在哪里定义?
-
还有为什么setTimeout里面有三个参数?
-
setTimeout 的第三个参数我相信应该是函数的参数,所以 item = product
标签: javascript jquery alert settimeout