首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在setInterval / setTimeout中使用变量作为时间

在setInterval / setTimeout中使用变量作为时间
EN

Stack Overflow用户
提问于 2013-09-23 15:39:48
回答 4查看 16.8K关注 0票数 9

下面是一个例子。

代码语言:javascript
复制
var count,
    time = 1000;

setInterval(function(){
    count += 1;
}, time);

上面的代码将将1添加到"count“var,非常1000毫秒。似乎setInterval在触发时将使用它在执行时所看到的时间。如果稍后更新该值,它将不会考虑到这一点,并将在设置的初始时间内继续启动。

如何动态更改此方法的时间?

EN

Stack Overflow用户

发布于 2013-09-23 15:42:46

在JavaScript中,整数不是通过引用传递的,这意味着无法通过更改变量来更改间隔。

只需取消setInterval,并重新启动它与新的时间。

在这里可以找到示例:http://jsfiddle.net/Elak/yUxmw/2/

代码语言:javascript
复制
var Interval;

(function () {
    var createInterval = function (callback, time) {
        return setInterval(callback, time);
    }

    Interval = function (callback, time) {
        this.callback = callback;
        this.interval = createInterval(callback, time);
    };

    Interval.prototype.updateTimer = function (time) {
        clearInterval(this.interval);
        createInterval(this.callback, time);
    };

})();

$(document).ready(function () {
    var inter = new Interval(function () {
        $("#out").append("<li>" + new Date().toString() + "</li>");
    }, 1000);

    setTimeout(function () {
        inter.updateTimer(500);
    }, 2000);
});
票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18963377

复制
相关文章

相似问题

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