Есть два объекта, которые вы можете передать универсальному объекту ajax, называемые ajaxStart
и ajaxStop
. Это обработчики событий, которые запускаются при отправке и получении ajax-запроса.
ajaxStart (глобальное событие)
Это событие транслируется, если запущен Ajax-запрос, и в данный момент другие Ajax-запросы не выполняются.
ajaxStop (Глобальное событие)
Это глобальное событие инициируется, если больше не обрабатываются запросы Ajax.
Имея это в виду, довольно легко настроить то, что вы ищете:
$("#loading").bind("ajaxStart", function(){
$(this).show();
}).bind("ajaxStop", function(){
$(this).hide();
});
Просто сделайте ваш #loading
div как хотите - взгляните на многочисленные плагины лайтбокса или BlockUI , чтобы добиться чего-то похожего на то, что вы просили.
Конечно, вы можете настроить его на то, что вам нравится, но как только он установлен в верхней части вашего сценария, он устанавливает и забывает.
Если вы используете плагин BlockUI, то все, что вам нужно сделать, это:
$().ajaxStart($.blockUI).ajaxStop($.unblockUI);