首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用setTimeout获得定时执行速度?

如何使用setTimeout获得定时执行速度?
EN

Stack Overflow用户
提问于 2014-02-25 04:15:38
回答 3查看 290关注 0票数 1

我尝试编写由setTimeout执行的Java语句。我的代码将元素添加到画布中。我想要获得一种动画,其中一些图形元素被添加到画布上一个接一个,几秒钟后,其中。

我试过:

代码语言:javascript
复制
for (series in respuesta) {
    if (series != "x" && series != "y" && series != "raiz") {
        (function(x){
            setTimeout(function(){  plot.highlight(1,[respuesta[x].a,0])
                                    plot.highlight(1,[respuesta[x].b,0])},
                                    2500,c,x);                     
            c++;
         }(series))

    }     
}

然而,我得到的只是,延迟后立即执行的所有标记。我真的认为每个setTimeout都是一个循环中的一个步骤。每次总n次迭代,我会有n次延迟。

是否有任何简单的方法可以使用jQuery或任何库来做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-25 04:24:34

您是在循环中设置超时。为什么不为每个循环迭代增加2500‘t,这样它们的间隔才是均匀的,而不是只是延迟了相同的时间。

代码语言:javascript
复制
var  timeout = 2500; 
for (series in respuesta) {
    if (series != "x" && series != "y" && series != "raiz") {
        (function(x){
            setTimeout(function(){  plot.highlight(1,[respuesta[x].a,0])
                                    plot.highlight(1,[respuesta[x].b,0])},
                                    timeout,c,x);                     
            c++;
            timeout += 2500;
         }(series))

    }     
}
票数 1
EN

Stack Overflow用户

发布于 2014-02-25 04:25:20

您应该使用setInterval()。这在一定的时间间隔内一次又一次重复相同的功能:

代码语言:javascript
复制
 var i = 0;
 var myItems = ["a", "b", "c"]
 var myHandle = setInterval(function() {

     // Add new items here.

     i++;

     if (i >= myItems.length) {
        clearInterval(myHandle);
     }

 }, 1000) ;
票数 3
EN

Stack Overflow用户

发布于 2014-02-25 04:22:28

尝试setInterval()在jQuery中

代码语言:javascript
复制
setInterval(function() {
      // Do something every 5 seconds
}, 5000);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22004444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档