jQuery成功函数中的ajax成功函数

jQuery ajax success function inside success function?

本文关键字:成功 函数 ajax jQuery      更新时间:2023-09-26

我试图在函数的成功函数中调用ajax函数。这是我的代码:

success: function () {
    jQuery.ajax({
        type: "POST",
        url: "script.php?subtype=3",
        data: "page=1",
        beforeSend: function () {
            jQuery(".data").animate({opacity: 0.2}, 150);
            jQuery(".outer-data").css({'background': 'url("ajax-loader.gif") no-repeat scroll 50% 50%'});
        },
        success: function (msg) {
            jQuery("#container_cat").ajaxComplete(function (event, request, settings) {
                jQuery(".outer-data").css({'background': 'none'});
                jQuery("#container_cat").html(msg);
            });
        }
        // ...
    });
}

尽管我在Firebug控制台中从得到了响应

jQuery("#container_cat").html(msg);

我在文档中没有得到任何输出。

我在这里错过了什么?

success: function () {
    jQuery.ajax({
        type: "POST",
        url: "script.php?subtype=3",
        data: "page=1",
        beforeSend: function () {
            jQuery(".data").animate({opacity: 0.2}, 150);
            jQuery(".outer-data").css({'background': 'url("ajax-loader.gif") no-repeat scroll 50% 50%'});
        },
        success: function (msg) {
            jQuery(".outer-data").css({'background': 'none'});
            jQuery("#container_cat").html(msg);
        }
        // ...
    });
}

问题似乎是在成功函数内部调用ajaxComplete()函数。您不需要在成功函数中使用ajaxComplete,因为只有当ajax请求完成并成功时,成功函数才会执行。所以在里面使用ajaxComplete是没有意义的。参考:ajaxComplete文档您可以使用ajaxComplete before success功能。