带有多个对话框的JQuery UI对话框问题

时间:2011-09-24 16:38:31

标签: javascript jquery jquery-ui dialog

我有几个对话框(jquery-ui-ified),它们看起来像这样:

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

我遇到的问题是,当我打开一个对话框,然后打开另一个对话框,或关闭另一个对话框时,它会重新定位第一个对话框 - 有时会移动它以便我无法再访问标题栏移动它。

当然,剧本中有很多事情可能是罪魁祸首 - 虽然对我来说没有什么是显而易见的 - 这意味着,我没有通过打开或关闭对话框指定的代码,而不是重新定位任何对话框其他对话。

所以我的问题是,有没有人以任何身份经历过这一点,和/或是否有人对可能导致这种情况发生的原因有任何见解 - 我可以用来开始追踪罪魁祸首的任何事情都会有所帮助

谢谢 -

2 个答案:

答案 0 :(得分:2)

我确实遇到过类似的问题,仅在 IE 中使用jquery-ui 1.8.16。它看起来像known issue,我使用了以下方法

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

来自this solution并解决了它。你也可以尝试一下。

答案 1 :(得分:0)

尝试在打开对话框时设置对话框的位置。

$('#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偏移量,但这应该修复对话框位置,以便在使用其他对话框时它不会随机移动。