【发布时间】:2016-04-22 16:52:30
【问题描述】:
请帮忙!我正在制作一个同时触发多个警报的警报系统,但我实际上希望它们一次出现一个,以便它看起来像 bash 中的命令提示符,它是睡眠功能。
看看https://jsfiddle.net/14cmgrLj/10/
function iterateThru (message, status) {
var time = 500;
$.each(alertsArray, function(index, item) {
//setTimeout(function(){ fireAlerts(message, status); }, 1000);
setTimeout(fireAlerts, 100, message, status);
//remove
setTimeout(removeAlert, 4000);
});
// empty array
alertsArray = [];
}
我从我的网站各处调用此函数。为了使它们逐一触发-每次使用我的函数时,都会将对象添加到数组中,然后我使用 .each 使用 setTimeout 循环遍历它们中的每一个,但它们仍然会一次全部触发。我怎样才能循环遍历数组的项目,每个项目之间都有延迟。
提前致谢
【问题讨论】:
-
您的 fireAlert 和 removeAlert 功能是否按预期工作>
-
setTimeouts 会导致您的代码异步运行,这就是导致问题的原因。您需要改用递归循环。
-
FireAlert 和 removeAlert 函数可以工作,但不是我想要的方式。 jsfiddle.net/14cmgrLj/10@ayushgp
标签: javascript jquery html css alert