2009-11-14 2 views
9

Я новичок в javascript и jQuery. Я пытаюсь реализовать модальный диалог с помощью виджета jQuery UI.jQuery UI модальный диалог не блокирует

Модальное диалоговое окно отображается правильно с кнопками «ОК» и «Отмена», но вызов функции «открытый» не кажется заблокированным и ждет нажатия кнопки «ОК» или «Отмена». Например, когда я запускаю следующий код

..... на кнопку мыши

okToDelete = false; //a global variable 
    $('deleteDialog').dialog('open'); //this does not block but returns immediately 
    alert(okToDelete == true ? "ok" : "false"); 

Оповещение окно отображается первым и ТОГДА модальный диалог показывает вверх! okToDelete - это глобальная переменная, которую я установил в false, когда я вхожу в функцию и устанавливаю значение true в обратном вызове кнопки OK.

Вот мой диалог функция инициализации

$("#deleteDialog").dialog({ 
     bgiframe: true, 
     autoOpen: false, 
     modal: true, 
     overlay: { 
      backgroundColor: '#000', 
      opacity: 0.5 
     }, 
     buttons: { 
      Cancel: function() { 
       $(this).dialog('close'); 

      }, 
      Ok: function() { 
       $(this).dialog('close'); 
       okToDelete = true; 
      } 
     } 
    }); 

ответ

11

Это не означает «блок». Если вы хотите отобразить предупреждение (я предполагаю, что это для тестирования) или вызвать другие функции после закрытия диалога, если вы разместите его в пределах callback или ok, cancel.

Проверьте это:
http://docs.jquery.com/UI/Dialog#event-close

Событие close из документации:
Это событие вызывается, когда диалоговое окно закрывается.
Примеры кода

Поставка функции обратного вызова для обработки события закрытия в качестве опции init.

$('.selector').dialog({ 
    close: function(event, ui) { ... } 
}); 

Привязать к закрытию событие по типу: dialogclose.

$('.selector').bind('dialogclose', function(event, ui) { 
    ... 
}); 
Смежные вопросы