Как я могу расположить мой диалог JQuery в центре?

Для этого вам не нужен jQuery. Вы можете использовать только некоторый чистый JavaScript:

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, '\\$&');
    var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, ' '));
}

Использование:

// query string: ?foo=lorem&bar=&baz
var foo = getParameterByName('foo'); // "lorem"
var bar = getParameterByName('bar'); // "" (present with empty value)
var baz = getParameterByName('baz'); // "" (present with no value)
var qux = getParameterByName('qux'); // null (absent)

Примечание: если параметр присутствует несколько раз (?foo=lorem&foo=ipsum), вы получите первый значение (lorem). Стандартов об этом нет, и обычаи меняются, см., Например, этот вопрос: Авторитарная позиция дублирующих HTTP-запросов GET . ПРИМЕЧАНИЕ. Функция чувствительна к регистру. Если вы предпочитаете имя параметра, нечувствительного к регистру, добавьте модификатор 'i' в RegExp


Это обновление, основанное на новых спецификациях URLSearchParams для достижения того же результата более лаконично. См. Ответ под названием « URLSearchParams » ниже.

65
задан informatik01 29 June 2014 в 17:20
поделиться

1 ответ

Я почти уверен, что вам не нужно устанавливать позицию:

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

по умолчанию должен находиться в центре .

Я просмотрел статью, а также проверил, что там написано на официальном сайте jquery-ui о позиционировании диалогового окна : и в нем обсуждались 2 состояния: инициализация и после инициализации.

Примеры кода - (взяты из jQuery UI 2009-12 -03)

Инициализировать диалог с указанной опцией положения.

$('.selector').dialog({ position: 'top' });

Получить или установить опцию положения после инициализации.

//getter
var position = $('.selector').dialog('option', 'position');
//setter
$('.selector').dialog('option', 'position', 'top');

Я думаю, что если бы вы удалили атрибут позиции, вы бы обнаружили, что он центрируется сам по себе, иначе попробуйте второй вариант установщика, в котором вы определяете 3 элемента: «option», «position» и «center».

50
ответ дан 24 November 2019 в 15:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: