我在我的项目中经常使用 jQuery.post ,每次浏览器发送 post 请求时,我想在请求处理过程中显示预加载器,然后在收到服务器回复时停止预加载器:
var params = {'action':'get_customer_info', 'customerID':4};
preloader.start();
$.post('ajax/url', params, function(response){
preloader.stop();
responseHandler(response);
});
我不想每次调用 jQuery 的 post 时都添加 preloader.start() 和 preloader.stop() 行,而是想在 jQuery.post 之前以及成功/失败处理程序上绑定(bind)/触发事件。
我通常知道如何绑定(bind)和触发事件,但我不确定如何使用 $.post 和处理程序来做到这一点。
我该怎么做?
最佳答案
您可以设置全局 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);
});
关于javascript - 将事件绑定(bind)到 jQuery.post 和回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40573809/