Вопрос о плагине SimpleQodal jQuery - возможно ли повторное центрирование после первоначального открытия? - PullRequest
2 голосов
/ 19 марта 2010

моя проблема связана с плагином SimpleModal jQuery . У меня нет проблем с открытием модального окна, но как только оно открывается, оно остается там, где оно [центрировано] на экране, однако его содержимое меняется, делая его выше и, следовательно, больше не центрируется. Есть ли простой способ перестроить его так, чтобы он снова стал центрированным?

РЕДАКТИРОВАТЬ: Я думаю, что это поможет объяснить мою проблему, показав два снимка экрана: до & после - в основном я использую jQuery's Функция slideUp & slideDown позволяет скрыть форму кредитной карты в зависимости от того, платит ли пользователь наличными / чеком или кредитной картой. Очевидно, что с полями кредитной карты высота контейнера увеличивается.

Я попытался добавить $("div#modal-element").setPosition() в элемент обратного вызова slideUp / slideDown, но безрезультатно - на самом деле setPosition() выдает ошибку JS, потому что, очевидно, функция не существует. Я всегда пытался добавить параметр autoResize и установить его в true.

Ответы [ 2 ]

3 голосов
/ 20 марта 2010

Поскольку SimpleModal настроен для обработки повторного центрирования при изменении размера окна, самый простой способ - вызвать это событие.После изменения содержания просто позвоните по этому номеру:

$(window).resize();
2 голосов
/ 20 марта 2010

Если вы находитесь в одном из обратных вызовов, у вас есть доступ ко всем функциям и свойствам - так что вы можете вызвать setPosition (), чтобы перецентрировать диалог. Например:

$(element).modal({
    onShow: function (dialog) {
        var modal = this;

        // do stuff and change the container dimensions

        modal.setPosition(); // re-center the container
    }
});

Я не тестировал код, но он должен работать.

НТН

...