Я работаю с большой существующей базой кода с тоннами устаревшего кода, который я не могу изменить. Моя задача - перейти на версию 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;
}
}