Как прикрепить ко всем событиям открытия Jquery.UI.dialog для динамического изменения размера диалогового окна при открытии?

Я работаю с большой существующей базой кода с тоннами устаревшего кода, который я не могу изменить. Моя задача - перейти на версию UI библиотеки 1.8. У меня проблемы с размещением элемента jquery.ui.dialog ().

Весь сайт загружается через javascript (что, я думаю, сейчас очень популярно). Тонны HTML загружаются динамически, что вызывает проблемы с позиционированием в диалоговом окне. Раньше на сайте использовалось настраиваемое положение css: относительно, чтобы убедиться, что все диалоговые окна расположены правильно.

Диалоги настроены следующим образом:

    $('#deletingDialog').dialog({ autoOpen: false, modal: true, position: 'center' });

В UI 1.8 было изменение в способе работы dialog (), которое нарушает это поведение: http://jqueryui.com/docs/Upgrade_Guide/1.8.6

Не менять позицию DOM при открытии

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

Весь код настройки dialog () очень рано привязывается к элементам html и находится в нескольких разных местах. В идеальном мире я бы смог попасть туда и изменить все вызовы диалогов на позднюю привязку и настроить только прямо перед тем, как диалоговое окно должно открыться. Это, скорее всего, решит проблему. К сожалению, изменение всего этого кода действительно непозволительно и демонстративно не вариант.

Я думаю о подключении к событию открытия диалога http://jqueryui.com/demos/dialog/#event-open и сбрасывает позицию прямо перед открытием модального окна.

Так что либо я могу найти все элементы с диалогами, а затем выполнить привязку через $ (".selector") .bind ("dialogopen" и т. Д.), Либо подключиться к событию глобально (предпочтительно).

env               GEM_HOME=/home/shadyfront/.rvm/gems/ruby-1.8.7-p330@revolting_gems;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    access_log  /home/shadyfront/logs/user/access_revolting_age.log  combined;
    error_log   /home/shadyfront/logs/user/error_revolting_age.log   crit;

    include         mime.types;
    passenger_root  /home/shadyfront/webapps/revolting_age/gems/gems/passenger-2.2.15;
    passenger_ruby  /home/shadyfront/webapps/revolting_age/bin/ruby;
    sendfile        on;

    passenger_max_instances_per_app  1;
    rails_spawn_method               conservative;
    passenger_max_pool_size 2;

    server {
        listen             56943;
        passenger_enabled  on;
        root               /home/shadyfront/webapps/revolting_age/releases/20110215175319/public;
        server_name        localhost;
    }
}

9
задан Trip 15 February 2011 в 22:26
поделиться