在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/C  HTML/ for循環(huán)里執(zhí)行setTimeout無法實現(xiàn)延遲執(zhí)行

for循環(huán)里執(zhí)行setTimeout無法實現(xiàn)延遲執(zhí)行

//循環(huán)復(fù)制
$(".forExecute").click(function(){
    var tableSign = $("#tableSign").val();
    if(!(tableSign > 0)){
        layer.msg("請選擇要復(fù)制的數(shù)據(jù)");
        return;
    }
    var forNum = $("#forNum").val();
    for(var i = 1; i <= forNum; i++){
        var data = {
            "tableSign":tableSign,
            "pageNo":i,
            "pageSize":$(".pageSize").val(),
            "startDate":$(".startDate").val()    
        };
        setTimeout(executeDataCopy(data),5000);
    }
})

function executeDataCopy(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("系統(tǒng)繁忙,請稍后再試");
            }
        }
    });
}
回答
編輯回答
背叛者

setTimeout第一個參數(shù)是 Function,而你傳了一個executeDataCopy(data),這是一個方法的調(diào)用(而不是方法本身),實際上你傳給setTimeout的是undefined,可以按上面幾位大佬的方法改。

2018年1月28日 14:14
編輯回答
安于心

setTimeout(executeDataCopy(data),5000);
這句executeDataCopy已經(jīng)被立刻執(zhí)行了,可以用下面的方式傳參:
setTimeout(executeDataCopy,5000,data);

2018年4月11日 19:11
編輯回答
焚音

這樣就可以了

for(var i =1; i<10; i++){
        (function(a){
            var data = 123456;
            setTimeout(function(){
                console.log(data);
            }, **a*2000**);
        })(i);
}
2018年4月29日 07:00
編輯回答
久舊酒
setTimeout(executeDataCopy(data),5000);
這么寫就相當(dāng)于直接執(zhí)行executeDataCopy(data);
再套一層:
setTimeout(function(){
    executeDataCopy(data)
},5000);
就行了
2018年3月31日 09:58
編輯回答
乞許
setTimeout(executeDataCopy,5000,data);
2017年4月22日 00:04
編輯回答
尐飯團
setTimeout(function(){
    executeDataCopy(data)
},5000);

2018年7月17日 11:12