Domanda

Ho un modal dialog modulo che contiene alcuni "collegamenti di aiuto" al suo interno che dovrebbero aprire altri pannelli o finestre di dialogo non modali sopra di esso (mantenendo la finestra di dialogo principale altrimenti modale).

Questi però finiscono sempre dietro la maschera. YUI sembra riconoscere il più alto z-index là fuori e impostando la maschera e la finestra di dialogo modale su un valore superiore.

Se aspetto di pannellizzare il contenuto della guida, posso impostarli in modo che abbiano uno z-index più alto.Fin qui tutto bene.Il problema quindi è che i campi all'interno delle finestre di dialogo secondarie e non modali non sono focalizzabili.La finestra di dialogo modale sottostante sembra in qualche modo impedire al focus di concentrarsi su qualsiasi cosa non sia presente nella finestra di dialogo modale iniziale.

Sarebbe anche accettabile se potessi eseguire questa "modalità di gruppo di dialogo" con jQuery, se YUI semplicemente non lo consente.

Aiuto!

È stato utile?

Soluzione

Per impostazione predefinita, YUI gestisce lo z-index di tutto ciò che estende YAHOO.widget.Overlay e utilizza un pannello in sovrapposizione.Lo fa tramite il metodo "bringToTop" di YAHOO.widget.Overlay.Puoi disattivarlo semplicemente modificando il metodo "bringToTop" in una funzione vuota:

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

Quel codice lo spegnerebbe definitivamente e potresti semplicemente inserirlo nella parte inferiore del file container.js.Trovo che questo approccio sia un po' troppo un approccio a martello, quindi estendiamo le classi YUI e dopo aver chiamato "super.constuctor" scriviamo:

this.bringToTop = function() { };

Se lo fai, stai essenzialmente dicendo a YUI che gestirai tu stesso gli indici z dei tuoi elementi.Probabilmente va bene, ma è qualcosa da considerare prima di farlo.

Altri suggerimenti

La finestra di dialogo originale non può essere modale se si suppone che l'utente interagisca con altri elementi: questa è la definizione di modale.Fa la finestra di dialogo originale Veramente deve essere modale?In tal caso, hai provato ad attivare la proprietà modale della finestra di dialogo originale prima di aprire gli altri elementi?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top