在jquery中添加循环执行延迟
我试图以10秒的延迟执行循环中的几行。在下面添加代码在jquery中添加循环执行延迟,jquery,loops,delay,Jquery,Loops,Delay,我试图以10秒的延迟执行循环中的几行。在下面添加代码 $(xmlResponse).find("row").each(function() { setInterval( //some set of code here ,10000); }); 我不知道我做得对不对,你们谁能给我指点一下吗 问候,, Ashwin您可能需要
$(xmlResponse).find("row").each(function()
{
setInterval(
//some set of code here
,10000);
});
我不知道我做得对不对,你们谁能给我指点一下吗
问候,,
Ashwin您可能需要setTimeout(),因为它只触发一次:
$(xmlResponse).find("row").each(function() {
setTimeout( //some set of code here ,10000);
});
现在很清楚OP希望每10秒在
.each()
循环中执行一个操作,有几种方法可以做到这一点。一种方法是堆积一大堆setTimeout()
调用,为整个循环安排未来的工作。我不喜欢这样做,因为这样做会让你很难对未来的工作做出逻辑上的决定。相反,我倾向于改变迭代到常用设计模式的方式,如下所示:
var rows = $(xmlResponse).find("row");
var cntr = 0;
function nextRow() {
if (cntr < rows.length) {
var currentRow = rows.eq(cntr);
// do your operation on currentRow here
++cntr;
// schedule the next row for 10 seconds from now
setTimeout(nextRow, 10 * 1000);
}
}
// start the first one
nextRow();
var rows=$(xmlResponse.find(“row”);
var-cntr=0;
函数nextRow(){
如果(cntr<行长度){
var currentRow=rows.eq(cntr);
//在此处对currentRow执行操作
++碳纳米管;
//从现在开始,安排下一行10秒
设置超时(下一步,10*1000);
}
}
//开始第一个
nextRow();
您是否运行了代码?setInterval将每10秒运行一次,如果您只想运行一次,请将其更改为SetTimeOut。您不能让循环的迭代真正等待或延迟。javascript不是这样工作的。您可以使用setTimeout()
计划将来运行的代码,但您的问题并不清楚这是否正是您想要的,或者您真的只想缓慢地进行迭代,每10秒一项。请更详细地描述您真正想要完成的任务。@Kartikeya-.delay()
仅适用于jQuery动画,而不适用于.each()
@jfriend00,谢谢您的评论。。我正在尝试调用GoogleAPI来获取一些latitude和longitude值。由于GoogleAPI的响应速度有点慢,我希望我的循环能够以5秒或10秒的延迟进行迭代。。如果我不清楚,请告诉我