我目前使用我的AJAX預加載GIF與此代碼調用:如何根據不同的ajax調用顯示不同的preloader gif?
$(document).ajaxStart(function() {
var position = $('#parentDiv').position();
position.left += (($('#parentDiv').width()/2) - ($('#bigPreloader').width()/2));
position.top += (($('#parentDiv').height()/2) - ($('#bigPreloader').height()/2));
$('#bigPreloader').css(position).show();
$('#bigPreloader').show();
}).ajaxStop(function() {
$('#bigPreloader').hide();
});
在上面的代碼,#parentDiv佔據了大部分的頁面,並預加載爲250x250的像素,在#居中parentDiv。
這工作得很好,但我剛纔補充說,與特定輸入相關聯的一些額外的Ajax調用,而不是整個頁面。我有一個小的預加載器(14x14像素),我打算將其放入適當的輸入本身。
是否有內部ajaxStart一個方法來確定哪些Ajax調用被做?或者有沒有辦法讓多個ajaxStart鏈接到特定的元素?
SOLUTION
$(document).ajaxSend(function (event, jqxhr, settings) {
if (settings.url.indexOf('LoadInputData') == -1) {
var position = $('#parentDiv').position();
position.left += (($('#parentDiv').width()/2) - ($('#bigPreloader').width()/2));
position.top += (($('#parentDiv').height()/2) - ($('#bigPreloader').height()/2));
$('#bigPreloader').css(position).show();
$('#bigPreloader').show();
} else {
$('#inputLoad').removeClass('notActive').addClass('isActive');
}
}).ajaxStop(function() {
if ($('#bigPreloader').is(':visible')) {
$('#bigPreloader').hide();
} else {
$('#inputLoad').removeClass('isActive').addClass('notActive');
}
});
我們可以看到小提琴一些代碼?可能對你的url進行一些小的修改,比如**添加querystring **(url +「?largerpreloader」/ url +「?smallerLoader」)可能會幫助你做同樣的事情。這些應該由調用者方法決定,並根據url查詢字符串加載預加載。** – 2013-02-21 15:19:00
我不知道如何模仿裏面的jsfiddle Ajax調用。我希望有一個參數可以在.ajaxStart函數調用中使用,但似乎沒有。 – ESDictor 2013-02-21 15:25:09