Проблема с модальным диалогом для открытия вторичного диалога - PullRequest
4 голосов
/ 17 сентября 2008

У меня есть форма modal dialog, в которой есть несколько «справочных ссылок», которые должны открывать другие немодальные панели или диалоговые окна поверх нее (при этом главное диалоговое окно остается в ином случае модальным).

Однако они всегда оказываются за маской. YUI, кажется, распознает самый высокий z-index и устанавливает маску и модальное диалоговое окно выше, чем это.

Если я подожду, пока панель справочной информации не будет отображена, я могу установить для них более высокий z-индекс. Все идет нормально. Проблема в том, что поля во вторичных немодальных диалогах не могут быть сфокусированы. Модальное диалоговое окно под ними, кажется, каким-то образом не позволяет фокусу перейти к чему-либо, что отсутствует в исходном модальном диалоговом окне.

Было бы также приемлемо, если бы я мог сделать эту "модальность диалоговой группы" с jQuery, если YUI просто не допустит этого.

Помощь!

Ответы [ 2 ]

4 голосов
/ 02 октября 2008

По умолчанию YUI управляет z-индексом всего, что расширяет YAHOO.widget.Overlay и использует панель наложения. Это делается с помощью метода «takeToTop» в YAHOO.widget.Overlay. Вы можете отключить это, просто изменив метод “takeToTop” на пустую функцию:

YAHOO.widget.Overlay.prototype.bringToTop = function() { };

Этот код отключит его навсегда, и вы можете просто поместить его в конец файла container.js. Я считаю, что этот подход слишком сложен, поэтому мы расширяем классы YUI и после вызова super.constuctor пишем:

this.bringToTop = function() { };

Если вы сделаете это, вы по сути говорите YUI, что вы сами будете управлять z-индексами своих элементов. Это, вероятно, хорошо, но кое-что нужно рассмотреть, прежде чем делать это.

0 голосов
/ 17 сентября 2008

Исходное диалоговое окно не может быть модальным, если пользователь должен взаимодействовать с другими элементами - это определение модального режима. Должен ли оригинальный диалог действительно вообще быть модальным? Если да, пытались ли вы переключить модальное свойство исходного диалогового окна, прежде чем открывать другие элементы?

...