У меня есть функция, которая запрашивает данные с помощью ajax. Я хотел бы отображать занятый счетчик, но hide/show не меняет видимость элементов.Показать/скрыть не работать во время запроса AJAX
function RequestDataFromServer(stuff, url) {
var result;
$.ajax({
url: url,
data: { stuff: Stuff},
async: false,
beforeSend: function() {
$("#divOverlay").show();
console.log("Starting...");
},
complete: function() {
$("#divOverlay").hide();
console.log("Complete!");
result = true;
},
success: function (data) {
AddDataToCache(data);
},
error: function (xhr, ajaxOptions, thrownError) {
result = false;
}
});
return result;
}
Я знаю, что синтаксис show/hide корректен, потому что он работает, когда я прикрепляю его к кнопкам. Я также попытался с помощью:
$(document).ajaxStart(function(){
$("#divOverlay").show();
})
С не влияет (однако, если я шаг через это событие в Chrome это делает шоу и скрыть элементы). Я также попытался показать/скрыть в функции, которая вызывает функцию RequestDataFromServer ... все равно ничего. У меня нет идей.
Убедитесь, что элемент, на который вы нацеливаете, имеет идентификатор 'divOverlay' .. –
Отображаются ли ваши сообщения в журнале консоли? Ваша операция ajax на самом деле занимает некоторое время, чтобы бежать, или это происходит очень быстро, и поэтому нет времени, чтобы увидеть наложение? –
@ Zakaria - Ид правильные, я тестировал его с помощью кнопки, и элемент показывался правильно. –