我使用这个函数来包装 jQuery 的 AJAX POST 函数。
function POST(_url,_data,_container,success,anim) {
var _loader = null
var doAJAX = function() {
$.post(_url,_data,success);
};
if(typeof anim===undefined) {
doAJAX();
} else if(_container!=null) {
switch(anim) {
case 'loading':
_loader = $("<div class='LoadingAnim' style='display:none;'></div>");
_container.empty();
_loader.appendTo(_container).fadeIn('fast',doAJAX);
break;
case 'fade':
_container.fadeOut('fast',doAJAX);
break;
case 'slide':
_container.slideUp('fast',doAJAX);
break;
}
}
}
我添加了_container
参数,它是用于保存内容的 div 的 jQuery 对象。可选anim
参数可以改变清除容器的动画。另外,加载图片是通过在容器清空后在容器中插入一个div来实现的。该 div 有一个类,将其样式设置为具有动画加载图标并在其父容器中正确居中。该doAJAX
功能曾经更长,但我不得不删掉一些,因为它对答案没有用,这就是为什么它看起来不必要地为空。如果使用anim
“加载”之外的任何选项,请确保将容器重置为在success
函数中可见。
使用是这样的
POST('some-script.php',{data: values},$('#containerToPrintTo'),function(data) {
//Do some error checking or get the return from data and insert it.
}, 'loading');