javascript - setTimeout 改变超时值

标签 javascript jquery arrays settimeout

我正在 jQuery 中处理一些超时问题,但我的超时值出现了问题。 所以,我得到了一个值数组(例如:[“2490”,“4200”]),我希望超时在 2490 毫秒后打印该数组的值,然后返回到 0 并最终打印该数组的下一个值4200ms后的数组。但它永远不会回到0

实际上,这是 jQuery 代码:

var array = ['2490', '4200'];
var mytimeout;

for (var i = 0; i < array.length; ++i)
{
    doTimeout(i);
    clearTimeout(mytimeout);
}

function doTimeout(i) {
    mytimeout = setTimeout(function() {
       $('#text').append(array[i]);
    }, array[i]);
}

JSFIDDLE:https://jsfiddle.net/2aftscou/

所以一切似乎都有效,除了我希望我的计时器在结束时重新初始化为 0(这就是我使用 clearTimeout() 的原因,但它在这个中不起作用案例)。

我真的不知道该怎么办

最佳答案

这行不通。您的超时将在开始后终止。执行旧的超时后,您必须开始新的超时。

类似这样的事情

function doTimeout(i) {
    mytimeout = setTimeout(function() {

    $('#text').append(array[i]);
    i++;
if (i<array.length) {
doTimeout(i)
 }

   }
}

关于javascript - setTimeout 改变超时值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38000671/

相关文章:

php - 为批量照片上传创建自定义文件对话框

javascript - 如何在javascript中过滤和添加剩余的obj

javascript - 使用 jQuery 重新排列 RSS 中 div 的顺序

java - Codility 中的 TapeEquilibrium 问题

javascript - 如何将 PHP 数组转为 Javascript

javascript - Angular http.get API 请求 - 不存在 'Access-Control-Allow-Origin' header

Javascript 扩展不起作用

javascript - 使用 dc.js 从 barChart 中删除空组

javascript - 如何使用 Jquery 中的 onclick 按钮在多个 div 上使用显示和隐藏

javascript - $http get 循环将响应数据追加在一起