2016-08-04 26 views
-5

为什么setTimeout不起作用?以及如何正确执行此操作?每次提交需要延迟30秒。对不起,新手问题,但我是新手。JS setTimeout stack

\t if (event.target.id.indexOf('submit') === 0) 
 
{ post1000.submit(); setTimeout('post1001.submit();', 30000); } 
 
{ post1001.submit(); setTimeout('post1002.submit();', 60000); } 
 
... 
 
{ post5092.submit(); setTimeout('post5093.submit();', 122790000); } 
 

 
}, false);

+0

以及如何正确执行此操作?每次提交需要延迟30秒。 –

+0

你正试图设置超时提交功能?你的代码已经有语法错误,请解释你的目的。 –

+0

请显示真实的实际代码。你现在展示的东西没有意义。这就像你正在执行5000次提交,然后设置一堆计时器,并想知道为什么所有5000次提交都刚刚完成。另外,你的'if'语句看起来像只与基于支撑的第一次提交一致。请显示真实的代码。 – jfriend00

回答

0

我相信你shouln't使用一个字符串作为第一个参数的setTimeout(); 下面是这个函数的定义:

setTimeout(function,milliseconds,param1,param2,...) 

尝试使用此代码示例,或者相应地更新你的:

setTimeout(function(){ alert("Hello"); }, 3000); 
+1

这不是主要问题。虽然传递一个字符串给'setTimeout()'是一种反模式,但它在很多情况下都有效。 – jfriend00

+0

那样? setTimeout(post1000.submit(){alert(“Hello”);},3000); setTimeout(post1001.submit(){alert(“Hello”);},6000); setTimeout(post1002.submit(){alert(“Hello”);},9000); ... setTimeout(post5000.submit(){alert(“Hello”);},12000); –

+0

对于setTiemout第一个参数的语法部分,是的。 不能说你的代码的其他部分,因为我不明白这样的代码会做什么(至少没有HTML部分),也不知道你正在努力实现的细节。 – technico

0

您也可以尝试这样的事情;

setTimeout(yourSubmitFunction, 3000) 

function yourSubmitFunction() { 
    //do whatever you want to do you can define submit here 
} 

您可以在循环中调用setTimeout,就像您的数组中具有“post ****”变量的每个元素一样。

+0

如何在我的情况下在循环setTimeout? –