添加到JQuery的Ajax:成功函数

时间:2012-01-11 07:26:29

标签: jquery

我已经为JQuery的Ajax函数制作了一个自定义的包装器,一切都运行得很好但是现在我想要更进一步。我想在Success函数中添加一个自定义代码,该函数将使用每个Ajax请求自动调用,但不会覆盖实际请求中指定的内容。需要在成功时调用它,因为它将修改从服务器接收的内容。

我的自定义Ajax功能:

 $.adv_ajax = function(options) {
            if (!(options.url)){
                options.url="index.php";
            }
            if (!(options.data_type)){
                options.dataType='json';
            }

var extra_success=function(){
 add_special_fx();
}
                options.success=options.success+extra_success;


            return $.ajax(options);
        }

使用它的典型Ajax调用:

    $.adv_ajax({
    url: "user_accounts.php",
                dataType: 'json', 

                success: function(response){
$("#mydiv").html(response);

    }
    });

3 个答案:

答案 0 :(得分:0)

您可以使用ajaxSuccess()函数。它会在每次成功的ajax请求后触发。

http://jqapi.com/#p=ajaxSuccess

答案 1 :(得分:0)

我相信你正在寻找jQuery Global AJAX Events:http://api.jquery.com/category/ajax/global-ajax-event-handlers/。它们允许您向所有AJAX请求添加事件处理程序。

.ajaxSuccess()

  

在Ajax请求完成时附加要执行的函数   成功。这是一个Ajax事件。

来源:http://api.jquery.com/ajaxSuccess/

答案 2 :(得分:0)

如果您只需要在包装器中调用自定义函数,请将您的处理程序包装到另一个函数中,您可以根据需要调用多个函数:

options.success = function(data, textStatus, jqXHR) { 
    options.success(data, textStatus, jqXHR);
    extra_success(data, textStatus, jqXHR);
}

我唯一不确定如果你使用新函数重新options.success它会起作用,也许你需要创建单独的options对象,并将其与当前的对象一起使用。