jQueryUi对话框卡在左上角(而不是可移动)

时间:2012-11-13 11:12:12

标签: jquery css jquery-ui position jquery-dialog

所以我有一个简单的jQueryUi对话框,它不会居中,也无法移动。

我在控制台中收到的错误消息是

jquery-ui-1.8.17.custom.min.js:36

所以这并没有告诉我太多,只是传递给某个jQueryfunction的一些参数是无效的:

Uncaught TypeError: Object function (a,b){return new p.fn.init(a,b,c)} has no method 'curCSS' jquery-ui-1.8.17.custom.min.js:36
a.fn.position jquery-ui-1.8.17.custom.min.js:36
p.extend.each jquery-1.8.2.min.js:2
p.fn.p.each jquery-1.8.2.min.js:2
a.fn.position jquery-ui-1.8.17.custom.min.js:36
a.widget._position jquery-ui-1.8.17.custom.min.js:156
a.widget.open jquery-ui-1.8.17.custom.min.js:156
(anonymous function) jquery-ui-1.8.17.custom.min.js:17
p.extend.each jquery-1.8.2.min.js:2
p.fn.p.each jquery-1.8.2.min.js:2
a.widget.bridge.a.fn.(anonymous function) jquery-ui-1.8.17.custom.min.js:17
openMediaLibrary 6:456
onclick 6:187

对话框div如下所示:

<div id="mediaLibrary" title="Bildgalleri">
     <iframe width="950px" height="500px" src="{{ path('ImageGallery') }}" style="border:0;" /></iframe>
</div>

Dialog在这里初始化了......

$( "#mediaLibrary" ).dialog({
    height: 550,
    width:980,
    modal: true,
    autoOpen: false,
    position: { my: "center", at: "center" },
});

...并在此处开启

$( "#mediaLibrary" ).dialog( "open" );

4 个答案:

答案 0 :(得分:2)

我发现这是我一起使用的jQuery和jQuery UI版本的问题。

我发现这种版本组合阻止了对话框“粘贴”到左上角:

  • jQuery 1.8.2
  • jQuery UI 1.10.1

答案 1 :(得分:1)

您没有使用position的所有参数。无论如何,对话框的默认值都以页面为中心,因此删除position选项将清除您的问题。

还要注意选项对象中的语法错误...跟踪逗号。这将在IE中破解

答案 2 :(得分:1)

将用户主题或插件目录中的jQuery UI版本文件更改为新版本的jQuery UI。如果问题没有解决,则将相同的jQuery UI版本的缩小文件复制到wp-includes/js/jquery/ui文件夹(复制ui文件夹中的所有文件)。

答案 3 :(得分:0)

您似乎正在使用jQuery UI的自定义构建。在download builder中,请确保您已包含推荐的组件,包括:

  • 位置
  • 可拖动

此外:

  • 使用您喜欢的HTML验证程序确保您的标记正确
  • 确保JavaScript错误不是由其他一些代码引起的