Модальное диалоговое окно jQuery UI не блокируется - PullRequest
10 голосов
/ 14 ноября 2009

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

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

..... при нажатии кнопки

  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;
            }
        }
    });

1 Ответ

11 голосов
/ 14 ноября 2009

Это не означает «блокировать». Если вы хотите отобразить предупреждение (я полагаю, это для тестирования) или вызвать другие функции после закрытия диалогового окна, если вы хотите поместить его в функции 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) {
  ...
});
...