Код добавляет элементу, инициализировавшему друпаловский ajax запрос (ссылка, кнопка), класс ajax-loading
и удаляющий этот класс после завершения запроса:
Drupal 8
(function ($, Drupal) {
var originalAjaxBeforeSend = Drupal.Ajax.prototype.beforeSend;
Drupal.Ajax.prototype.beforeSend = function(xmlhttprequest, options) {
$(this.element).addClass('ajax-loading');
originalAjaxBeforeSend.apply(this, arguments);
};
var originalAjaxSuccess = Drupal.Ajax.prototype.success;
Drupal.Ajax.prototype.success = function(response, status) {
$(this.element).removeClass('ajax-loading');
originalAjaxSuccess.apply(this, arguments);
};
})(jQuery, Drupal);
Drupal 7
(function ($) {
var originalAjaxBeforeSend = Drupal.ajax.prototype.beforeSend;
Drupal.ajax.prototype.beforeSend = function(xmlhttprequest, options) {
$(this.element).addClass('ajax-loading');
originalAjaxBeforeSend.apply(this, arguments);
}
var originalAjaxSuccess= Drupal.ajax.prototype.success;
Drupal.ajax.prototype.success = function(response, status) {
$(this.element).removeClass('ajax-loading');
originalAjaxSuccess.apply(this, arguments);
}
})(jQuery);
Написанное актуально для
Drupal 7, Drupal 8
Похожие записи
- Показать второй шаг многошаговой формы в модальном окне
- Навесить на элемент managed_file свой ajax callback (Как обновить всю форму при загрузки файла в managed_file)
- Восстанавливаем позицию текстового курсора при ajax обновлении формы
- Как выполнять свой js-код до или после любых AJAX запросов (изменение работы AJAX API)
- AJAX в форме корзины Commerce 2
Добавить комментарий