for循环里执行setTimeout无法实现延迟执行

//循环复制
$(".forExecute").click(function(){
vartableSign=$("#tableSign").val();
if(!(tableSign>0)){
layer.msg("请选择要复制的数据");
return;
}
varforNum=$("#forNum").val();
for(vari=1;i<=forNum;i++){
vardata={
"tableSign":tableSign,
"pageNo":i,
"pageSize":$(".pageSize").val(),
"startDate":$(".startDate").val()
};
setTimeout(executeDataCopy(data),5000);
}
})
functionexecuteDataCopy(data){
$.ajax({
type:"get",
url:"executeCopyData.do",
data:data,
dataType:'json',
success:function(data){
if(data!=null&&data.success!=null){
layer.alert(data.msg);
}else{
layer.alert("系统繁忙,请稍后再试");
}
}
});
}
沧海一幻觉
浏览 314回答 2
2回答

慕妹3242003

这样就可以了for(vari=1;i

呼如林

setTimeout(executeDataCopy(data),5000);这句executeDataCopy已经被立刻执行了,可以用下面的方式传参:setTimeout(executeDataCopy,5000,data);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript