Вы можете написать прокси вокруг метода jQuery.ajax. Мы добавим простую разметку (которую можно стилизовать в другом месте) к элементам, содержимое которых загружается, а затем заменим эту разметку responseText после завершения запроса:
jQuery.fn.extend({
// usage: $(<selector>).spinnerload();
spinnerload: function(url, options)
{
var self = this;
var options = options || {};
var success = options.success || function() {};
options.success = function(responseText, status, jqXHR)
{
self.html(responseText);
success(responseText, status, jqXHR);
}
self.html('<div class="loading"></div>');
jQuery.ajax(url, options);
}
});