2010-01-29 8 views
7

Estoy tratando de usar el cuadro de diálogo jQuery como una pantalla de carga para ajax. Lo tengo funcionando muy bien hasta el momento, pero me gustaría que la pantalla de carga no se pueda cerrar. Sin embargo, parece que el cuadro de diálogo de la interfaz de usuario no tiene "cerrable" como una opción.jQuery UI dialog - cómo hacer que no se cierre?

¿Cómo se puede hacer que no se pueda cerrar? Traté de cerrar closeText en blanco, pero eso no hizo nada. La pequeña 'X' todavía aparece en la esquina superior derecha.

¿No crees que el cierre puede ser una opción para el widget de diálogo?

Gracias

Respuesta

7

Ying, sólo tiene que pasar una llamada de retorno a beforeclose:

$("#loading").dialog({ 
    beforeclose: function(){ return false } 
    // other options here 
}); 
+0

derecho, lo siento. Eso es exactamente lo que habría sugerido si no hubieras encontrado esa parte por tu cuenta. ¡Gustoso de trabajar para ti! Asegúrese de marcar la respuesta como aceptada (haga clic en el cheque gris). Ambos obtenemos puntos de representación y ayuda a las personas futuras con el mismo problema a saber qué solución funcionó para usted. Bienvenido a StackOverflow! –

+0

Vaya, encontré un problema con esta solución. Cuando llamo a $ ("# loading"). Dialog ('close') ahora no hace nada. Necesitaba que funcionara, así que decidí ocultar la "X" a través de CSS. – Ying

6

Doug, gracias por la rápida respuesta. Eso inhabilitó la acción cercana. Sin embargo, no ocultaba la "X" en la esquina superior derecha. Terminé usando css para ocultar la "X".

/* hide the close x on loading screen */ 
.classForMyDialog .ui-dialog-titlebar-close { 
    display: none; 
} 
+2

También debería considerar establecer closeOnEscape en false, '$ (" .selector ") .dialog ({closeOnEscape: false});' en la inicialización o '$ (" .selector ") .dialog (" option "," closeOnEscape ", false);' más tarde para configurarlo en falso –

1

cómo llegué al respecto gracias a Ying y Doug

Clase:

.myDialog .ui-icon{ 
    display:none !important; 
} 

Jquery:

$(".ajaxloader").dialog({ 
     modal:true, 
     resizable:false, 
     dialogClass:'myDialog' 
    }); 
+0

Gracias, eso funcionó. –

+0

Esto oculta también los iconos en el diálogo mismo. El selector debería ser más concreto, creo. –

1

Creo Ying está en el camino correcto, pero resulta que el .classForMyDialog (asumiendo que es el div con contenido de diálogo) no tiene el ícono como un niño así que no funcionó.

que tuvieron éxito con:

$("#myDialogDivID").parent().find(".ui-dialog-titlebar-close").hide() 

El padre selecciona la dotación de diálogo div y entonces podemos encontrar y ocultar el icono de cierre.

También aprovecho esta oportunidad para destacar el comentario para establecer:

closeOnEscape: false 
Cuestiones relacionadas