【问题标题】:How to reset interval counter and restart interval with counter from zero如何重置间隔计数器并使用计数器从零重新启动间隔
【发布时间】:2014-08-19 07:50:51
【问题描述】:

使用以下代码,当我不再调用 interval 时,我的时间间隔会重置,但是当我再次调用 interval 时,计数器不会从零开始,而是继续计数。

代码

var i=0;
var counter=0;

var play_int = setInterval(function(){ event_play() }, 4000);

function clear_event_play(){
    clearInterval(play_int);
}       

function replay_events(){
    setInterval(function(){ event_play() }, 4000);
}   

function event_play(){
    counter+=30;    
    i++;
    alert (i);
    if (i > 4){
        clear_event_play();
        replay_events();
    }
    var event_id = $('.stnby_pstr_cntr'+i+'').attr("data-eventid");
    ....

我在哪里错过它?

【问题讨论】:

  • 您只存储对在第一次调用 setInterval 时创建的间隔的引用,但不存储在 replay_events 内部的调用 - 因此您将无法清除在那里创建的间隔更多的。而且我没有看到您在任何地方重置 counter 的值。

标签: jquery loops counter setinterval intervals


【解决方案1】:

调用replay_events时需要重新初始化所有变量。

function replay_events(){
    counter = 0;
    i = 0;
    play_int = setInterval(function(){ event_play() }, 4000);
}  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多