我已经为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);
}
});
答案 0 :(得分:0)
您可以使用ajaxSuccess()函数。它会在每次成功的ajax请求后触发。
答案 1 :(得分:0)
我相信你正在寻找jQuery Global AJAX Events:http://api.jquery.com/category/ajax/global-ajax-event-handlers/。它们允许您向所有AJAX请求添加事件处理程序。
在Ajax请求完成时附加要执行的函数 成功。这是一个Ajax事件。
答案 2 :(得分:0)
如果您只需要在包装器中调用自定义函数,请将您的处理程序包装到另一个函数中,您可以根据需要调用多个函数:
options.success = function(data, textStatus, jqXHR) {
options.success(data, textStatus, jqXHR);
extra_success(data, textStatus, jqXHR);
}
我唯一不确定如果你使用新函数重新options.success
它会起作用,也许你需要创建单独的options
对象,并将其与当前的对象一起使用。