JQuery-UI dialog,' switching ' modal option не работает


Можно ли динамически изменять модальный режим диалога пользовательского интерфейса jquery?

Я привел рабочий пример: http://jsfiddle.net/LXB2Y/ и похоже, что это не работает.

 $( this ).dialog("option","modal",false);
3 3

3 ответа:

Похоже, что диалог не будет отражать изменения, пока он открыт, но изменения вступают в силу. Чтобы показать изменения, вы можете закрыть, а затем сразу же снова открыть диалоговое окно. Возможно, это не самое лучшее решение.

                $( this ).dialog("option","modal",true)
                    .dialog("close")
                    .dialog("open");

Http://jsfiddle.net/9vVGz/

Если вы хотите изменить параметры диалогового окна, вам нужно сделать это до того, как вы его откроете. Кроме того, вам нужно будет взаимодействовать с компонентами диалога, такими как наложение с вашим собственным кодом после его открытия

Пример:

/* initialize a dialog*/
$('#dialog').dialog({autoOpen:false, modal:true});


/* open a dialog from a click handler and change options*/  
$('#myButton').click(function(){
    /* change original modal option*/                         
    $('#dialog').dialog('option', 'modal', false);
    /* change title based on text of "myButton"*/
    $('#dialog').dialog('option', 'title', $(this).text())

    /* options have been changed, open dialog now */
    $('#dialog').dialog('open');                          
});

Все еще не работает с jQuery 1.11. Однако вы можете просто добавить наложение вручную, если хотите переключиться с немодального диалога на модальный:

$("#dialog").dialog("widget").before("<div class='ui-widget-overlay ui-front'></div>");

Удалите наложение соответствующим образом, если вы хотите переключиться с модального диалога на немодальный.