У меня есть веб-страница, которая, в конечном счете, представляет собой набор диалогов 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');
}
... это необходимо, потому что мне нужно иметь возможность захватить все диалоговое окно (я не понимаю, почему не существует механизма для простого присвоения идентификатора диалоговому элементу 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?