Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SetInterval不重复[控制切换到循环端Chrome调试器中未定义的窗口]_Javascript_Debugging_Setinterval - Fatal编程技术网

Javascript SetInterval不重复[控制切换到循环端Chrome调试器中未定义的窗口]

Javascript SetInterval不重复[控制切换到循环端Chrome调试器中未定义的窗口],javascript,debugging,setinterval,Javascript,Debugging,Setinterval,下面的HTML/JSvanilla脚本在5000ms内显示一个新的随机添加问题,然后在接下来的3000ms内显示答案。 在此之后,setInterval主循环8000ms=5000ms+3000ms应开始并显示一个新问题,整个过程应重复。 但是,在第一个循环之后,主循环不会重复。该控件会转移到Chrome调试器中未定义的窗口。 在setInterval Main循环中,我也尝试使用实际整数值8000msIn代替var time,但循环从未发生。 而且,控制台也没有给出任何错误。 请让我知道如何让

下面的HTML/JSvanilla脚本在5000ms内显示一个新的随机添加问题,然后在接下来的3000ms内显示答案。 在此之后,setInterval主循环8000ms=5000ms+3000ms应开始并显示一个新问题,整个过程应重复。 但是,在第一个循环之后,主循环不会重复。该控件会转移到Chrome调试器中未定义的窗口。 在setInterval Main循环中,我也尝试使用实际整数值8000msIn代替var time,但循环从未发生。 而且,控制台也没有给出任何错误。 请让我知道如何让这个脚本循环

document.getElementByIdrunJS1.onclick==>{ document.getElementByIdrunJS1.innerHTML=正在运行; }; document.getElementByIdrunJS1.onclick=JS1; 函数JS1{ //
让time=8000;//问题的根源在于调用页面末尾的setInterval

通过这样做,如下面的示例所示,您可以立即使用randNum参数调用add函数。这会导致每隔8秒在没有给定参数的情况下启动add函数

var loopMain = setInterval(add(randNum), time);
要将参数传递给setTimeout或setInterval,请使用这些函数的第三个参数

var loopMain = setInterval(add, time, randNum);
现在每次都调用add函数,并将randNum参数传递给add函数


更多的例子说明了这一点。

请注意,这里的脚本不起作用,但在Chrome中工作良好。 传递给主add函数的函数argumentrandN的执行可以通过使用函数来延迟。 我已经修改了上面的脚本,现在按照预期执行

// document.getElementByIdrunJS1.onclick==>{ document.getElementByIdrunJS1.innerHTML=正在运行; }; document.getElementByIdrunJS1.onclick=JS1; 函数JS1{ // 时间=8000//