需要解决jquery ui/webkit中的.position()错误吗

需要解决jquery ui/webkit中的.position()错误吗,jquery,css,jquery-ui,webkit,Jquery,Css,Jquery Ui,Webkit,我有一个网页,最终是一组jQueryUI对话框,全部30%的屏幕宽度,分为三列,每个列包含不同种类的仪表板信息 我将数据加载到div中,在$(document).ready()函数中,我创建对话框,并根据div显示的数据类型将它们排列在不同的列中 我为每个div使用了这个代码的一个变体(我计划在它正常工作时使它更干净,所以请原谅它的冗余)。首先,如果对话框包含数据,则创建该对话框: //show recent posts if they exist below the account reque

我有一个网页,最终是一组jQueryUI对话框,全部30%的屏幕宽度,分为三列,每个列包含不同种类的仪表板信息

我将数据加载到div中,在$(document).ready()函数中,我创建对话框,并根据div显示的数据类型将它们排列在不同的列中

我为每个div使用了这个代码的一个变体(我计划在它正常工作时使它更干净,所以请原谅它的冗余)。首先,如果对话框包含数据,则创建该对话框:

//show recent posts if they exist below the account requests
if($('#recentPosts').html().length > 0){
    $('#recentPosts')
    .dialog({
        title: 'Recent Forum Messages',
        height: 320
    })
    .parent().addClass('cfdialog').attr('id', 'recentPostsDialog');
} else {
    $('#recentPosts').addClass('cfdialog').attr('id', 'recentPostsDialog');
}
。。。这是必要的,因为我需要能够抓取整个对话框(我不明白为什么没有机制可以轻松地将ID分配给对话框div);创建所有对话框后,我会执行以下操作:

//now that the dialogs are set up, position them.
var leftContent = $('#columnTop');
var centerContent = $('#columnTop');
var rightContent = $('#columnTop');

$('.cfdialog')
.css('width', '30%')
.css('height', 'auto')
.css('max-height', '400');

...

$('#recentPostsDialog')
.position({
    my: 'center top',
    at: 'center bottom',
    of: centerContent,
    offset: '0 5'
});
if ($('#recentPostsDialog').html().length > 0){
    centerContent = $('#recentPostsDialog');
}
这将在一个对话框中显示帖子,就像我在FireFox和IE中所希望的那样。然而,对于Chrome,对话框会弹出大约30个像素,并干扰我的菜单项

我读过很多关于SO和jquery论坛的文章,它们认为这是由于webkit计算偏移量的方式,有人发布了补丁,但在这种情况下似乎不起作用


有人能告诉我如何解决基于webkit的浏览器的问题吗?

似乎没有简单的答案。我最后测试了
jQuery.browser.safari
,如果为真,则手动偏移div:(

你确定dialogs是解决这个问题的正确方法吗?老实说,不,我不认为是这样,但我也不认为这是我的问题。有点像。你正在尝试对齐绝对定位的
div
s(它将连接在
正文的底部)在一些其他元素上。这甚至听起来是错误的,并且产生了我所期望的那种问题。如果您试图使用“折叠/关闭”按钮创建小部件,那么对话框确实不是正确的方法。您可能需要一些
可拖动的
,但物理上定位在列中。这主要是关于
>.职位(
函数,它有效地绝对定位了一个div。它在Firefox和IE中运行良好。无论我使用什么样的小部件样式,这种行为都是可重复的、可复制的,而且有很多人对此表示不满;我只是在寻找一种解决方法,坦率地说,我不打算破坏对话框的基础结构在这一点上,尝试将
元素的
位置设置为相对,如果它不是相对的或绝对的。除此之外,您可能必须将依赖浏览器的代码分支或向google投诉。