2008-09-16 23 views
4

İçinde başka bir "yardım bağlantısı" olan bir modal dialog form var ve bunun üzerine diğer kalıcı olmayan panelleri veya iletişim kutuları açmalısınız (ana iletişim, aksi halde kalıcı) . Bununla birlikte, bunlar her zaman maskenin ardında bitmektedir. YUI, orada en yüksek z-index tanıma ve maske ve kalıcı iletişim kutusunun bundan daha yüksek olmasını ayarlama gibi görünüyor.İkincil bir iletişim kutusu açmak için kalıcı bir iletişim kutusu olan bir sorun var

Yardım içeriğini panelde beklemek için beklerseniz, bunları daha yüksek bir z dizinine sahip olacak şekilde ayarlayabilirim. Çok uzak çok iyi. Sorun şu ki, ikincil olmayan model diyaloglar içindeki alanların odaklanamaz olması. Altlarındaki modal diyalog, bir şekilde, odaklanmanın, ilk iletişim modelinde olmayan bir şeye gitmesini engellemek gibi görünüyor.

YUI yalnızca buna izin vermezse, jQuery ile bu "iletişim grubu modalitesini" yapabilirsem de kabul edilebilir.

Yardım!

cevap

4

YUI, varsayılan olarak YAHOO.widget.Overlay öğesini genişleten ve bir yer paylaşımlı paneli kullanan her şeyin z dizinini yönetir. Bunu YAHOO.widget.Overlay'ın "bringToTop" yöntemiyle yapar. Sadece boş bir fonksiyonu olarak "bringToTop" yöntemini değiştirerek bu kapatabilirsiniz:

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

Bu kod iyiliği için kapatmak olur ve sadece container.js dosyanın alt kısmında bu koyabilirim. Bir balyoz yaklaşımının çok fazla biraz olmaya bu yaklaşımı bulmak, bu yüzden "super.constuctor" yazma çağırdıktan sonra YUI sınıfları ve uzatmak:

this.bringToTop = function() { }; 

Bunu yaparsanız, aslında YUI anlatıyorsun Öğelerinizin z-endekslerini kendiniz yöneteceksiniz. Muhtemelen iyi, ama bunu yapmadan önce dikkate alınması gereken bir şey.

0

Kullanıcı, diğer öğelerle etkileşime girmesi gerekiyorsa, orijinal iletişim kipi kullanılamaz; bu, modelin tanımıdır. orijinal iletişim kutusunun gerçekten modelinin kalıcı olması gerekiyor mu? Öyleyse, diğer öğeleri açmadan önce orijinal iletişim kutusunun modal özelliğini kullanmaya çalıştınız mı?

+0

Diğer tüm arka plan öğelerini de erişilebilir kılar. Her şeye erişimi engellemem gerekiyor ama bu üç diyalog seti (1 birincil, 2 ikincil). Birincil iletişim başarılı bir şekilde tamamlanana kadar başka bir şey yapmasına izin veremem. –

+0

O zaman, yarı-modaliteyi kendiniz uygulamak için JavaScript yazmanız gerektiğini düşünüyorum; Hiçbir dokümanda açıklanmadığım bir şey değil. –