[risolto] [gdrcd 5.4] Tasto "chiudi tutte le finestre modali"
[risolto] [gdrcd 5.4] Tasto "chiudi tutte le finestre modali" postato il 02/01/2017 21:31:15 nel forum programmazione, open source e hosting e modificato da irenes il 03/01/2017 13:21:43
Salve!
Stavo cercando di cimentarmi in una piccola aggiunta: un tasto schiacciando il quale tutte le finestre modali aperte nella land si chiudano.
Preciso che per le modali utilizzo lo script di GDRCD, semplicemente facendo in modo che ciascuna si apra con un nome diverso, così che, contemporaneamente ci possano essere più modali.
Ho fatto un po' di tentativi ma, confesso, con ben poco successo?
Qualcuno potrebbe illuminarmi? Grazie <3
Pagine → 1
03/01/2017 00:23:29
Vai nel footer e subito prima di questo punto https://github.com/GDRCD/GDRCD/blob/master/footer.inc.php#L38 ↗ inserisci quanto segue:
function modalWindowCloseall() {
$('.ui-dialog').dialog('close');
}
A questo punto, esattamente come scrivi il richiamo per creare una modale, ti basta invece invocare la funzione modalWindowCloseall() appena creata per chiudere tutto (chiaramente non accetta parametri questa funzione, valgono solo le solite regole del parent se chiami da un iframe e via dicendo).
03/01/2017 12:04:46 e modificato da irenes il 03/01/2017 13:25:23
...innanzitutto grazie! <3
allora, ho aggiunto al footer quanto da te indicato e poi ho sistemato, dove mi serve, quanto segue
<div class="chiudi"><a href="javascript:modalWindowCloseall()"><img src="/themes/basic/imgs/menu/close.png"></a></div>
...non chiude niente u.u"
cosa mi sfugge? Che passaggio ho saltato?
03/01/2017 12:58:47
Ipotizzo tu abbia già sostituito le virgolette nella funzione che ti ho fatto copiare.
JqueryUI di norma applica quello stile a tutte le modali quindi speravo di andare sul sicuro, ma evidentemente ci tocca qualcosa di decisamente più spartano:
function modalWindowCloseall() {
$('[id^=dialog-]').dialog('close');
}
Fammi sapere come va ;-)
03/01/2017 13:23:31
funziona! gentilissimo come al solito! :*
senti, se posso e giusto per provare a imparare un po' a pescare, invece che limitarmi a mangiare il pesce: cosa "dice" questo ultimo script? E perchè questo funziona e quello prima no?
03/01/2017 13:40:46
irenes ha scritto: funziona! gentilissimo come al solito! :*
senti, se posso e giusto per provare a imparare un po' a pescare, invece che limitarmi a mangiare il pesce: cosa "dice" questo ultimo script? E perchè questo funziona e quello prima no?
Sono stato abbastanza criptico prima evidentemente, provo a spiegartelo in termini più chiari.
La prima soluzione che ti ho fornito si basava sul fatto che jqueryUI (la libreria che genera le modali) assegnasse ad ognuna il class ui-dialog. Di conseguenza, ciò che ho fatto è stata la selezione di tutti gli elementi che contengono ui-dialog e di provare a chiuderli col comando proprio del widget http://api.jqueryui.com/dialog/#method-close ↗.
Non ho testato la soluzione e se non ha funzionato evidentemente ci sono motivi per cui la supposizione che ho fatto, nel tuo caso, sia errata. Ho cambiato quindi fronte e ho spostato la selezione su di un elemento certo: l'id che quel codice assegna alla modale comincia sempre col prefisso dialog- e basandomi su questo non ho fatto altro che indicare a jquery di rintracciare tutte le dialog dove l'attributo id comincia appunto per quel valore ( id^=dialog- ).
03/01/2017 13:52:03
non credo tu sia stato criptico, più probabile che io sia tarda! ;P
comunque.... chiarissimo, grazie anche per la risposta "divulgativa". Magari in futuro mi servirà per arrangiarmi su altro U_U
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
The Coven ↗
Project Entropy ↗
Exclusive Villa GdR ↗
CRSED: F.O.A.D. ↗
Sea of Conquest ↗