0

我有这两个要执行的函数,但我希望仅当第一个请求的内容已经加载到 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 回调上执行第二个函数,但有点令人困惑......我能得到一些帮助吗?

谢谢

4

1 回答 1

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 中,加载完成后,调用完成回调函数并显示带有数据的选项卡。

非常感谢!

于 2012-11-22T01:56:16.163 回答