【问题标题】:setTimeout and setIntervalsetTimeout 和 setInterval
【发布时间】:2015-03-04 11:57:52
【问题描述】:

我想让这个计数器在页面上的 5 秒内开始工作,但我无法将 setTimeout 与 setInterval 链接,你知道我该怎么做吗?

【问题讨论】:

  • 最好复制粘贴代码而不是代码图像
  • 谁在乎一张有代码的照片……让我否定
  • 首先我可以说没有对这个问题投反对票。如果有人投反对票,那么听起来你需要提高你的问题标准。
  • @PedroVB 如果我们可以复制您的源代码而不是逐个字符地键入它,那么回答起来会容易得多。
  • 告诉我你的最终目标。满足所有条件

标签: javascript settimeout setinterval


【解决方案1】:

尝试用 setTimeout 函数包裹你的时间间隔:

// interval variable 
var cycle = 10;
// variable for the interval since we are invoking it within a function, the callMeEverySecond function can't reach it
var t;
var callMeEverySecond = function() {
    cycle--;
    // Logs the Date to the console
    console.log(new Date());
    if(cycle === 0) {
        console.log("stop this");
        clearInterval(t);
        // do something further.
    }
}

// Start the timeout after 5 seconds
setTimeout(function() {
    // call the function 'callMeEverySecond' each second
    t = setInterval(callMeEverySecond, 1000);
}, 5000);

http://devdocs.io/dom/window.settimeout 还有一个小教程:http://javascript.info/tutorial/settimeout-setinterval

【讨论】:

  • 如果它有效,但现在发生的情况是,当它达到 0 时开始以负数计数.....并且似乎没有继续
  • 你的目标是什么?计数器应该在 0 后重新启动吗?只需将“tiempoInitial”再次设置为 10!
  • 当计数器达到 0 时出现“继续”并让我点击另一个页面
  • 好的,我已经编辑了我的答案。该函数在间隔后停止,您可以设置您的 div。
【解决方案2】:

这样好吗

var tiempoInicial = 10;
function tiempo() {
    document.getElementById('contador').innerHTML='Puedes continuar en ' + tiempoInicial + ' segundos.';
    if(tiempoInicial==0) {
        clearInterval(t);
        document.getElementById("contador").innerHTML = "<p id=\"forumulario\" onclick=\"goToForm1()\">Continuar</p>";
    }
}
function iniciar() {
    var t = setInterval(tiempo,1000);
    clearTimeout(ini);
}
var ini = setTimeout(iniciar, 5000);

抱歉,上面的代码我试过了,还是不行,所以稍微改了一下。

这是新代码。

var tiempoInicial = 10;
function tiempo() {
    document.getElementById('contador').innerHTML='Puedes continuar en ' + tiempoInicial + ' segundos.';
    tiempoInicial--;
    if(tiempoInicial < -1) {
        clearInterval(t);
        document.getElementById("contador").innerHTML = "<p id=\"forumulario\" onclick=\'goToForm1()\'>Continuar</p>";
    }
}
function iniciar() {
    t = setInterval(tiempo,1000);
    clearTimeout(ini);
}
var ini = setTimeout(iniciar, 5000);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    相关资源
    最近更新 更多