2011-06-08 47 views
2

我有一个中心化Jquery UI对话框的问题。Jquery UI对话中心

我从FLICKR动态地播放一些图像,当我点击缩略图时,图像位于页面的右侧, 如果关闭对话框并再次单击缩略图,则对话框打开正确的中心位置。

为什么它不出现在第一次点击的右侧(居中)位置?

这里是我的JS

我用这个作为我的出发点http://jqueryui.com/demos/dialog/#animated

$(function() { 
    $("#MYdialog").dialog({ 
     autoOpen: false, 
     resizable: false, 
     position: 'middle', 
     draggable: false, 
     width: 'auto', 
     center: true, 
     modal: true, 
     show: "fade", 
     hide: "fade",    
    }); 
}); 

回答

0

尝试解决您的标记,以除去多余的逗号:

show: "fade",   hide: "fade", 

show: "fade",   hide: "fade" 

完整的示例:

$(function() { 
    $("#MYdialog").dialog({ 
     autoOpen: false, 
    resizable: false, 
    position: 'middle', 
    draggable: false, 
    width: 'auto', 
    center: true, 
    modal: true, 
    show: "fade", 
    hide: "fade" 
    }); 
}); 
+0

我有更多的隐藏淡入淡出后,这就是为什么我不包括这里 – jayjay 2011-06-08 18:31:39

+0

嗯,一个问题,然后,如果你删除两个动画,它的工作呢?尝试发布所有的东西 - 你永远不知道可能会错过什么。 – 2011-06-08 18:34:53

2

也许这种情况正在发生,因为当你打开对话框的图像没有加载,试试这个:

var img = new Image() 
img.src = "IMG_SRC" 
$(img).load(function() { 
    $("#content_img").html(img) //create a div with id="content_img" inside #MYdialog 
    /* 
    open dialog here 
    */ 
}); 

编辑:忘了利用使用加载并调用对话框

+0

这里没有这个运气 – jayjay 2011-06-08 19:18:18

+0

@jayjay,你能提供一个代码的小提琴吗?谢谢。 – 2011-06-08 19:24:42

+0

我修好了,谢谢你们,我为它设置了一个宽度 – jayjay 2011-06-09 14:36:26

0

我所遇到的问题与回调中jQuery UI对话框,并按照以下方式解决它。而不是声明center: true(因为它应该工作,但没有),我现在用的是下面的,当我打开对话框:

$("#MYDialog").dialog("open") 
    .dialog("moveToTop") 
    .dialog('option', 'position', { my: 'center', at: 'center', of: "#wrapper" }); 

其中#wrapper是一个HTML元素的ID(例如div)的是围绕你想用来居中对话框的屏幕(它可以是不可见的)框架,例如

<div id="wrapper"> 
    <!-- your page content --> 
</div> 

此外,对于其他元素,您可以使用jquery.ui.position.js来对齐它们。 位置插件的更多示例可以在here中找到,或者查看API