Jquery - 仅当ajax请求完成且所有内容都已加载时,如何执行函数

时间:2012-11-21 18:59:20

标签: ajax jquery-ui jquery

我要执行这两个函数,但我希望只有当第一个请求的内容已经加载到DOM元素中时才执行第二个函数。

加载ajax内容的通用函数:

function ajaxDialog(AjaxUrl, type, targedDom, dialogedDom, tabs) {

$.ajax({
    url: AjaxUrl,
    type: type,
    DataType: "html",
    success: function (data) {
        //puts data inside targedDom Dom elemen
        $('#' + targedDom).html(data);
        //create tabs
        loadDialogSettings(dialogedDom, tabs);
    }
});

}

这第一个函数创建一个制表符结构:

ajaxDialog('/Admin/AdminSettingsTabsStructure', 'POST', renewedDom, targetDom, true);

并且这个填充了一些内容标签号2

loadRolesAndAcessRules('/Admin/AdminRolesAndAccessRules', 'GET', 'tabs-2');

我正在考虑从Ajax请求执行onComplete回调的第二个函数,但是有点混乱......我可以得到一些帮助吗?

由于

1 个答案:

答案 0 :(得分:1)

<强>解决方案:

function ajaxCallReturning(AjaxUrl, type, targetDom, tabIndex) {

$.ajax({
    url: AjaxUrl,
    type: type,
    DataType: "html",
    success: function (data) {
        $('#' + targetDom).html(data);
    },
    complete: function () {
        if (tabIndex == "1") {
            $("#tabs .ui-tabs-active").removeClass("ui-state-active");
            $('#tabs').tabs({ selected: tabIndex })
        } else {                
        }
    }
});

}

如您所见,所有数据都被加载到成功回调内的DOM中,加载完成后,将调用完整的回调函数并显示带有数据的选项卡。

非常感谢!