定位JqueryUI对话框的错误?对话框内容移动,框架不移动

时间:2014-05-27 16:50:45

标签: jquery jquery-ui

我正在使用JQueryUI来创建对话框。当我尝试使用.position({my,at,of}) method定位它时,对话框框架会保持不变但内容会移动。这种行为与两个最新版本的JQueryUI有些不同。

示例:

jsfiddle with v. 1.10.3 - div内容移动,在框架外保持可见
jsfiddle with v. 1.10.4 - div内容移动,如果在框架外隐藏

这是一个错误吗?我是否以某种方式滥用此功能?

2 个答案:

答案 0 :(得分:1)

以下是解决方案link

您需要定位对话框而不是内容

  $('.ui-dialog').position({my:'top',at:'bottom',of:'#dlg'});

答案 1 :(得分:1)

进一步深入研究这个问题,以编程方式定位jQueryUI dialog的“正确”方法是通过position option to dialog()

$('#dialog').dialog({position: {my:'top',at:'bottom',of:$('#other-element')} });

我仍然认为.position()行为奇怪是违反直觉的,但以上是可行的替代品。


@nol的回答表明发生这种情况的原因是因为jQueryUI在原始div周围放置了包装器来创建框架;通过选择包装元素,.position({my,at,of})也将正常工作。然而,这并不理想,因为它依赖于库所使用的类的知识。