gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 19:10:49 24 4
gpt4 key购买 nike

我有一个网页,最终是一堆 jquery-ui 对话框,屏幕宽度均为 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。 :(

关于jquery - 需要解决 jquery-ui/webkit 中的 .position() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8378271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com