Изменение положения DIV с помощью jQuery UI заставляет его перемещаться вниз и вправо каждый раз, когда он отображается - PullRequest
1 голос
/ 07 июля 2011

У меня небольшая проблема с перемещением элемента div, который должен служить инфобоксом.

Например, я выполняю вызов AJAX, и в случае успеха я получаю сообщение с сервера. Это сообщение установлено как текст div. Поскольку эти сообщения имеют разную длину, я должен изменить положение div, чтобы он оставался в центре родительского div.

Я пытаюсь добиться этого с помощью $("#infobox").position({of: $("#parent_field"). Первый раз показано, что он находится в точном центре. Но когда он отображается несколько раз подряд, он каждый раз перемещается вниз вправо.

Все сказанное здесь - это jsfiddle для моей проблемы. Просто нажмите Display Infobox несколько раз, чтобы увидеть проблему в действии.

1 Ответ

1 голос
/ 07 июля 2011

Это, я думаю, является следствием сокрытия элемента, поскольку он выполняется, координаты смещения добавляются как встроенный стиль, затем во второй и последующий раз, когда функция запускается, она складывает вместе требуемые исходные смещения.к тем, которые хранятся в строке.

Я не знаю, относится ли это к делу, но jQuery UI / API / 1.8 / Position говорит:

Примечание: Пользовательский интерфейс jQuery не поддерживает позиционирование скрытых элементов.

Однако:

добавление следующего, очищающего атрибут стиля, в функцию после завершения затухания, сбрасывает его и останавливаетсоставные смещения.

$("#infobox").removeAttr("style");

Пример разветвленной скрипки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...