2010-08-25 8 views
20

Qual è il modo migliore per rimuovere il pulsante di chiusura nella finestra di dialogo dell'interfaccia utente jQuery?Il modo migliore per rimuovere il pulsante di chiusura sul widget della finestra di dialogo dell'interfaccia utente jQuery?

Non desidero che le persone possano chiudere la finestra di dialogo.

sto coprendolo sull'angolo codice movimentazione:

closeOnEscape: false, 
beforeclose: function (event, ui) { return false; } 

Sto cercando di non avere bisogno di scrivere script per grap la classe/id del pulsante di chiusura e poi nasconderlo manualmente. E preferirei non modificare il CSS manualmente, in quanto la finestra di dialogo potrebbe avere situazioni in cui è necessario il pulsante di chiusura.

Preferirei farlo in qualche modo nella finestra di dialogo, ma o non riesco a capire come farlo o la finestra di dialogo non lo consente affatto.

Qualche suggerimento su come configurare la finestra di dialogo?

+1

possibile duplicato del [Elimina il pulsante di chiusura sul jQueryUI Dialog?] (Http://stackoverflow.com/questions/896777/remove-close-button- on-jqueryui-dialog) –

risposta

54

ho trovato che questo è una buona soluzione

$("#myDialogID").dialog({ 
    closeOnEscape: false, 
    beforeClose: function (event, ui) { return false; }, 
    dialogClass: "noclose" 
}); 

non alterando gli stili esistenti, anziché l'aggiunta di un nuovo bit:

.noclose .ui-dialog-titlebar-close 
{ 
    display:none; 
} 

Aggiunta la classe ha finito per essere piuttosto un metodo di eleganza, come sto "classificando" il dialogo come uno che non può essere chiuso.

+1

+1 anche da me. Davvero un'ottima soluzione! – NullPointer

+0

Questa è una soluzione estremamente elegante. Molto apprezzato! –

+1

Buona modifica @bishop, al momento della stesura di "beforeclose" continuava a dare un calcio nei tuoi giorni :-) https://github.com/jquery/jquery-ui/commit/b42125af4350eda14a6b15bb71f8dd336858fbd8/ –

2

ho trovato un'altra soluzione, funziona per me:

$("#divID").dialog({ 
    closeOnEscape: false, 
    open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); } 
}); 
Problemi correlati