Проблема с диалоговым интерфейсом JQuery с несколькими диалогами - PullRequest
4 голосов
/ 24 сентября 2011

У меня есть несколько диалогов (jquery-ui-ified), все они выглядят примерно так:

$('#options_dlg').dialog({
    modal:true,
    stack:true,
    autoOpen:false,
    resizable:false,
    title:'Options',
    height:620,
    width:520,
    zIndex:20000 
});

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

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

Итак, мой вопрос: кто-нибудь сталкивался с этим раньше в каком-либо качестве, и / или кто-нибудь знает, что может послужить причиной этого - все, что я могу использовать, чтобы начать выслеживать преступника, было бы полезно .

Спасибо -

Ответы [ 2 ]

2 голосов
/ 30 сентября 2011

У меня были похожие проблемы и только в IE с jquery-ui 1.8.16.Это похоже на известную проблему , и я использовал следующий метод

$dialog.parent().css({position:"fixed"}).end().dialog('open');

из этого решения и решил его.Вы тоже можете попробовать.

0 голосов
/ 27 октября 2011

Попробуйте установить положение диалогового окна при его открытии.

$('#options_dlg').dialog({
    modal:true,
    stack:true,
    autoOpen:false,
    resizable:false,
    title:'Options',
    position: [x,y],
    height:620,
    width:520,
    zIndex:20000 
});

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

Например:

x = $(cell).offset().left + $(cell).outerWidth();
y = $(cell).offset().top - $(document).scrollTop();

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

...