2011-09-24 24 views
4

JQuery用户界面对话框的问题,我有几个对话框(jQuery的UI-指明分数),他们都看起来像这样:与多个对话

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

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

脚本中有很多事情可能是罪魁祸首 - 虽然对我来说没有任何明显的含义 - 也就是说,我没有任何代码指定通过打开或关闭对话框,而不是指定它应该重定位任何其他对话框。

所以我的问题是,有没有人以任何身份经历过这件事,和/或有没有人有任何洞察力,什么可能导致这种情况发生 - 任何我可以用来开始追踪罪魁祸首将是很有帮助。

谢谢 -

+0

看来这与jquery-ui 1.8.14有关。我换出了版本1.7.2,并且不会发生该问题。所以,我想也许我应该提交给jquery ui团队? – OneNerd

+0

你可以把一个快速演示? – David

+0

1.8.16呢?每当我遇到这样的奇怪问题时,几乎总是因为存在重复ID的元素或类似于该页面中的元素。 – david

回答

2

我确实有且只能在IE 的jQuery UI的16年1月8日类似的问题。它看起来像一个known issue,我用下面的方法

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

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

+0

差不多2年后,使用最新版本的jQuery UI,这确实解决了我的问题 – JewrassicPark

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的偏移量,但应该解决的对话框位置,使其不动其他随机对话时被使用。