Come nascondere il bottone di chiusura di un dialog jQuery UI

martedì 17 febbraio, 2009

In attesa del rilascio ufficiale di jQuery UI 1.7 (eh già, il team di sviluppo di jQuery ha deciso che rilascerà la versione come 1.7, causa confusione), dove forse verrà inserita una opzione per eliminare il bottone di chiusura di un dialogo, ecco come risolvere velocemente il problema con l'attuale 1.6rc6:

JavaScript:
  1. // Agendo sull'evento open del dialogo
  2. $('#mydialog').dialog( {
  3.     open: function () { $('.ui-dialog-titlebar-close').css('display','none'); }
  4. });

Post correlati

Questo articolo ti è stato utile?: Per nientePocoAbbastanzaMoltoMoltissimo
Loading ... Loading ...

5 commenti a: “Come nascondere il bottone di chiusura di un dialog jQuery UI”

  1. 16 mar, 2009 giuseppe:

    Salve. Vorrei chiedere un aiuto.
    Ho appena iniziato a studiare jquery.
    Vorrei realizzare una piccola funzione, tipo quella usata nelle gallerie flash, per aprire una finestra dialog e oscurare il background. Il mio scopo è questo:
    Ho un buttone (immagine) che permette di scaricare un pdf. Vorrei aprire un dialog che oscura il resto e avvisa di attendere mentre viene scaricato il pdf. Come posso fare????
    Grazie per l'aiuto.
    giuseppe

  2. 16 mar, 2009 Giovambattista Fazioli:

    @giuseppe: nel caso specifico penso che non sia possibile fare esattamente quello che chiedi. Prima di tutto non stai "caricando" un pdf, come potrebbe essere nel caso di un'immagine, bensì lo fai scaricare agli utenti. Alcuni, infatti, potranno scegliere di salvarlo su disco altri, tuttavia, potrebbe scegliere di aprirlo, sostituiendo di fatto la tua pagina web con il contenuto pdf.
    A parte questo, non avresti comunque modo di sapere quando il pdf è stato "scaricato" completamente! Quindi l'eventuale dialog rimarrebbe aperto per l'eternità.
    Inoltre, durante il download di un file (come nel tuo caso), ci pensa il browser a mostrare l'avanzamente del download e un tuo eventuale messaggio sarebbe ridondante.
    Fammi sapere se ho capito bene la questione e se hai altre domande.

  3. 16 mar, 2009 giuseppe:

    Ciao e grazie d'avvero per super veloce risposta.
    In effetti hai ragione, e forse non sono stato chiaro io ;-p.
    Allora, il fatto è questo:
    Io ho già realizzato tutta l'applicazione ,in java2ee ,jsp, e permette di scaricare il pdf premendo il pulzante. In effetti automaticamente consente all'utente di scegliere se aprire esternamente il pdf o salvarlo.
    Fino qui tutto OK. Ora ho l'esigenza (tempo di attesa variabili e alcuni utenti ricliccano più volte nonostante l'avanzamento del download del browser) , di constringere l'utente ad attendere oscurando completamente lo sfondo, come ho visto permette dialog.
    La mia necessità è questa: visualizzare il dialog e farlo chiudere quando appare la finestra (scegliere o salvare). Spero di averti aiutato e se sia possibile usare jquery (visto che lo sto studiando oggi) oppure fare in altro modo. Grazie d'avvero
    Giuseppe

  4. 16 mar, 2009 Giovambattista Fazioli:

    @giuseppe: ok, se vuoi possiamo suddividere il problema in due: aprire un dialog o oscurare lo sfondo, e intercettare lo scaricamento del pdf. Per il primo problema la soluzione è abbastanza semplice e, se vuoi, non richiede necessariamente jQuery. Per creare un effetto di oscuramento, si può usare una semplice tecnica, ovvero quella di inserire un div (di dimensioni 100%) subito dopo il tag body, inizialmente impostato invisibile display:none e in posizione assoluta position:absolute con il background a qualsiasi colore tu voglia e renderlo visibile al momento opportuno. Impostandolo poi con un'alpha adeguato si crea l'effetto di oscuramento desiderato.
    Per quanto riguarda poi il problema dell'intercettare l'apertura del dialogo del browser credo, che per questioni di sicurezza, non sia proprio possibile farlo. Comunque è argomento interessante e prova a dare un'occhiata in giro se c'è qualche modo per capire se il dialogo sdi scaricamento "sta" per essere aperto...

  5. 19 mar, 2009 giuseppe:

    Ciao. Grazie per il chiarimento. Sto testando la tua idea, che sembra funzionare. Volevo chiederti un'altra cosina: Si puo utilizzare onLoad() sullo stesso div? in pratica cosi quando viene richiamata(ricaricata)la pagina si chiude la finestra.O mi suggerisci altro. L'importante che avvenga automaticamente senza ricliccare.
    Per quanto riguarda la parte la seconda parte, servlet ecc, per gestire l'intero processo ,dal momento di apertura della "pop-up" alla chiusura (quindi gestire l'intecettamento del download) credo di poterlo realizzare e sono a buon punto. Magari se finisco il tutto posso postarlo qui, magari potrà servire a qualcuno ;-) .
    Grazie

Lascia un commento

TAG XHTML PERMESSI: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERIMENTO CODICE:
<pre></pre>         // blocco generico
[code][/code]       // blocco generico
[as][/as]           // Actionscript
[css][/css]         // CSS Style Sheet
[html][/html]       // HTML
[js][/js]           // Javascript
[objc][/objc]       // Objective-C
[php][/php]         // PHP
[sql][/sql]         // SQL