将事件绑定到jQuery.post和回调

时间:2016-11-13 12:27:35

标签: javascript jquery events

我在我的项目中经常使用jQuery.post,每次浏览器发送一个post请求时,我想在请求进行过程中显示预加载器,然后在我从服务器获得回复时停止预加载器:

var params = {'action':'get_customer_info', 'customerID':4};

preloader.start();
$.post('ajax/url', params, function(response){
    preloader.stop();

    responseHandler(response);
});

每次调用jQuery的帖子时,我都不想添加preloader.start()和preloader.stop()行,而是想在jQuery.post之前绑定/触发事件以及成功/失败处理程序。

我知道如何绑定和触发事件,但我不确定如何使用$ .post和处理程序执行此操作。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以设置全局ajax事件,就像预加载器在每个ajax请求上显示的那样

$(document).ajaxSend(function() {
    preloader.start();
}).ajaxComplete(function() {
    preloader.stop();
});

或者您可以创建自己的post功能

function post(url, params) {
    preloader.start();
    return $.post('ajax/url', params, function(response){
        preloader.stop();
    });
}

一样使用
post('ajax/url', params).done(function(response) {
    responseHandler(response);
});