繁体   English   中英

setTimeout()/ setInterval()将不会执行。 **我正在传递函数对象-不执行函数

[英]setTimeout()/setInterval() won't execute. **I AM passing the function object - not executing the function

我遇到的问题是:

setInterval(checkInput, 5000);

哪里

var checkInput = function (letter) {
    console.log("This executed")
    if (ncorrect > 25)
        clearInterval();
    if (document.getElementById('keyinput').value === letter)
        ncorrect++;
    else
        ncorrect = 0;
}

我读过SO帖子,其中的问题是传递的函数看起来像setTimeout(function(), 500) ,而问题是() ,但是我显然没有这样做。

调试时似乎该函数实际上根本不会执行,并且setTimeout()/ setInterval()不会等待给定的时间。 我没有错误或警告。 任何见解均表示赞赏。 谢谢!

所有的工作对我来说,唯一的错误,我得到的是: - ncorrect是不确定的-我没有document.getElementById('keyinput')在我的网页;)

其余的应该没问题。 你有ncorrect#keyinput定义

您的代码对我有用。 我确实注意到了其中的一些其他错误:

首先是您的代码将无法清除间隔。 您必须传递clearInterval的参数:

var checkInput = function (letter) {
    console.log("This executed")
    if (ncorrect > 25)
        clearInterval(interval);
    if (document.getElementById('keyinput').value === letter)
        ncorrect++;
    else
        ncorrect = 0;
}

var interval = setInterval(checkInput, 5000);

第二个是您的checkInput函数采用参数letter 就目前而言,您没有向函数传递任何东西。 为此,您必须执行以下操作:

var interval = setInterval(function(){
    var letter = 'a' //whatever value you want to pass
    checkInput(letter);
}, 5000);

无论如何,祝您好运:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM