,你可能想看看BlockUI連同Darin Dimitrov's answer。我今天剛剛遇到過這個問題,但我自己還沒有用過它,但它看起來不錯。
如果你正在編寫一個半大型的應用程序,並且預計會在你的代碼中的不同地方做出很多AJAX調用,我建議你在$.ajax
之上添加一個抽象層,或者創建一個輔助函數來避免爲你的用戶界面指示器遍佈各處。如果你需要改變你的指標,這將會幫助你很多。
抽象方法
var ajax = function(options) {
$.ajax($.extend(
{
beforeSend: function() {
$.blockUI();
},
complete: function() {
$.unblockUI();
}
},
options
));
};
ajax({
url: 'script.cgi',
type: 'POST',
success: function(result) {
// todo: do something with the result
});
Helper方法
var ajaxSettings = function(options) {
return $.extend(
{
beforeSend: function() {
$.blockUI();
},
complete: function() {
$.unblockUI();
}
},
options
);
};
$.ajax(ajaxSettings({
url: 'script.cgi',
type: 'POST',
success: function(result) {
// todo: do something with the result
}
}));
而且,我不會建議覆蓋$.ajax
方法本身。
我正在使用jQuery BlockUI Element Blocking http://jquery.malsup.com/block/#element – Eduardo 2010-06-16 09:53:30