Модальное диалоговое окно jQuery открывается не модальным - PullRequest
0 голосов
/ 28 марта 2012

У меня есть следующая проблема:

Я уже открыл диалоговое окно JQuery и хочу наложить его на другое модальное диалоговое окно, чтобы покрыть это и показать некоторые другие функции / информацию.

Iзаполните второе диалоговое окно данными, полученными с помощью ajax-запроса.Проблема в том, что второе диалоговое окно не открывается модально при первом нажатии.Когда я закрываю его и снова открываю, диалоговое окно становится модальным.

Мой код выглядит следующим образом: я создаю диалоговое окно, которое уже существует в теле

function showMachineControlDialog(id)
{       
    loadMachineControlDialog(id);

    var buttonsOpts = {};
    buttonsOpts["Close"] = function() { $(this).dialog("close"); };
    $("#machine_control_box").dialog({ buttons : buttonsOpts });
    $("#machine_control_box").dialog({  width: 250, resizable: false });
    $("#machine_control_box").dialog( "option", "title", "Control-Dialog" );
    $("#machine_control_box").dialog({ zIndex: 2000 });
    $("#machine_control_box").dialog({ closeOnEscape: true });
    $("#machine_control_box").dialog({ modal: true });
    $("#machine_control_box").dialog({ autoOpen: false });
}

Здесь я получаюданные, которые помещаются в диалоговое окно:

function loadMachineControlDialog(id)
{   
    var paramlist = "id="+id;
    $.ajax({
         type: "GET",
         dataType: "html",
         url: "getData",
         data: paramlist,
         contentType: "application/x-www-form-urlencoded;charset=UTF-8",
         cache: false,
         success: function(data){
             $("#machine_control_box").html(data).dialog("open");
             $("#machine_control_box").dialog({ position : 'center' });
         },
             error: function(data){
             showErrorDialog(data.responseText);
         }
     });
}

Я нашел исправление самостоятельно после некоторого поиска.Я должен установить модальный атрибут ДО того, как любой HTML будет вставлен в диалог.Если после этого установить модальный режим, по какой-то причине он не будет работать.

1 Ответ

2 голосов
/ 28 марта 2012

Вы устанавливаете диалоговое окно модальным после первого его открытия, например, после вызова loadMachineControlDialog(id);.

Кроме того, вы должны связать свои опции .dialog, как это, и позвонить loadMachineControlDialog() после

 $("#machine_control_box").dialog({ 
   buttons : buttonsOpts,
   width: 250, 
   resizable: false
   "option", "title", "Control-Dialog" 
   zIndex: 2000;
   closeOnEscape: true 
   modal: true 
   autoOpen: false });

 loadMachineControlDialog(id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...