Кажется, проблема связана с параметром modal: true
диалогового окна #ajax-dialog
. Если вы установите опцию в false, она будет работать как положено. Обновление до последней версии jquery и jquery ui, похоже, не решило проблему.
Раствор 1
Установите модальную опцию на false
.
$('#ajax-dialog').dialog({
autoOpen: false,
modal: false, // set to false
title: 'Loading...'
});
DEMO
Решение 2
Вы можете использовать плагин BlockUI , который позволяет блокировать всю страницу или определенный элемент. он работает, показывая оверлейный элемент div (поверх страницы или элемента), запрещающий любое взаимодействие с основным содержимым. Вы можете отобразить сообщение и настроить внешний вид.
Блокировка содержимого диалога (с помощью переключателей):
$("#ajax-dialog").ajaxStart(function() {
$('#gender-dialog').block({
message: '<h1>Loading...</h1>',
css: { border: '3px solid #a00' }
});
});
$("#ajax-dialog").ajaxStop(function() {
$('#gender-dialog').unblock();
});
DEMO
Блокировка полной страницы:
$("#ajax-dialog").ajaxStart(function() {
$.blockUI({ message: '<h1>Loading...</h1>', baseZ: 2000 });
});
$("#ajax-dialog").ajaxStop(function() {
$.unblockUI();
});
Обратите внимание на опцию baseZ
, в данном случае это z-индекс наложения, значение по умолчанию которого равно 1000. Установите для него значение, превышающее значение диалогового окна для его покрытия.
DEMO