使用jQuery一次加载一个函数?

时间:2012-11-02 17:23:21

标签: jquery while-loop

我有一个我想一次加载一个函数的列表。我无法让它们加载一个,然后在加载数据后转到下一个。这是我的代码:

$(document).ready(function() {
    //step through the data sets
    var count = 1;
    if (count = 1) {
        loadingAjax('connectConferenceData','connectAttendanceData',count);
    }
    if (count = 2) {
        loadingAjax('connectWorkshopData','cwsData',count);
    }
    if (count = 3) {
        loadingAjax('relayCenterData','rcData',count);
    }
    if (count = 4) {
        loadingAjax('collectionCenterData','ccData',count);
    }
    if (count = 5) {
        loadingAjax('regionalStatsData','rsData',count);
    }
    if (count > 5) {
        $("#statusMsg").html('All tools have been loaded.').fadeIn('slow');
        setTimeout(function() {
            $('#statusMsg').fadeOut();
        }, 10000 );
    }
});

//function to get datasets
function loadingAjax(div_id,action_id,count) {  
    $("#loading").show();
    $("#"+div_id).html('<img src="images/admin_uploading.gif"> Loading data...');  

    $.ajaxSetup ({  
        cache: true  
    }); 

    $.ajax({  
        type: "GET",  
        url: "dashboard_functions.php",  
        data: "actionID="+action_id,  
        success: function(data){  
            $("#"+div_id).html(data).fadeIn();
            count++; 

            if (count != 6) {
                $("#statusMsg").html('<img src="./images/admin_uploading.gif" /> Loading data for tool #'+count+' loading'); 
            }

            $("#loading").hide();
        }  
    });  
} 

4 个答案:

答案 0 :(得分:0)

$.ajax()来电集async: false

您也不需要count变量或各种if语句。

答案 1 :(得分:0)

$(document).ready(function(){... 仅在页面加载时执行,并且仅执行第一步。 尝试在ajax调用的成功处理程序中执行后续步骤

答案 2 :(得分:0)

您可以设置一系列回调:

//step through the data sets
function DataSetStep(count){
 if (count == 1) {
    loadingAjax('connectConferenceData','connectAttendanceData',count);
 }
 if (count == 2) {
    loadingAjax('connectWorkshopData','cwsData',count);
 }
 if (count == 3) {
    loadingAjax('relayCenterData','rcData',count);
 }
 if (count == 4) {
    loadingAjax('collectionCenterData','ccData',count);
 }
 if (count == 5) {
    loadingAjax('regionalStatsData','rsData',count);
 }
 if (count > 5) {
    $("#statusMsg").html('All tools have been loaded.').fadeIn('slow');
    setTimeout(function() {
        $('#statusMsg').fadeOut();
    }, 10000 );
 }
}

$(document).ready(function() {
 DataSetStep(1);
});

//function to get datasets
function loadingAjax(div_id,action_id,count) {  
 $("#loading").show();
 $("#"+div_id).html('<img src="images/admin_uploading.gif"> Loading data...');  

 $.ajaxSetup ({  
    cache: true  
 }); 

 $.ajax({  
    type: "GET",  
    url: "dashboard_functions.php",  
    data: "actionID="+action_id,  
    success: function(data){  
        $("#"+div_id).html(data).fadeIn();
        count++; 

        if (count != 6) {
            $("#statusMsg").html('<img src="./images/admin_uploading.gif" /> Loading data for tool #'+count+' loading'); 
        }

        $("#loading").hide();
        DataSetStep(count);
    }  
 });  
} 

答案 3 :(得分:0)

您也可以递归地执行此操作:

$(function () {
    // This is global, so do it once, outside the function
    $.ajaxSetup ({  
        cache: true  
    }); 

    loadingAjax('connectConferenceData','connectAttendanceData',1);

    function loadingAjax(divId, actionId, count) {
        $("#"+div_id).html('<img src="images/admin_uploading.gif"> Loading data...');  
        if (count !== 6) {
            $("#statusMsg").html('<img src="./images/admin_uploading.gif" /> Loading data for tool #'+count+' loading'); 
        }
        $.ajax({  
            type: "GET",  
            url: "dashboard_functions.php",  
            data: "actionID="+action_id,  
            success: function(data){  
                $("#"+div_id).html(data).fadeIn();
                count++;

                if (count === 2) {
                    loadingAjax('connectWorkshopData','cwsData',count);
                }
                if (count === 3) {
                    loadingAjax('relayCenterData','rcData',count);
                }
                if (count === 4) {
                    loadingAjax('collectionCenterData','ccData',count);
                }
                if (count === 5) {
                    loadingAjax('regionalStatsData','rsData',count);
                }
                if (count > 5) {
                    $("#statusMsg").html('All tools have been loaded.').fadeIn('slow');
                    setTimeout(function() {
                        $('#statusMsg').fadeOut();
                    }, 10000 );
                }
                $("#loading").hide();
            }  
        });    
    }
});