2011-09-07 18 views
11

Este es el código HTML:opción jQuery diálogo modal no funciona

<div id="dialog" title="lala" style="display:none;"> 
     <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p> 
</div> 

Este es el código JavaScript

$bb('#addTopicButton').live('click',function() { 

    $bb("#dialog").dialog({ modal:true, closeOnEscape: false, draggable:false, resizable:false }); 

     }); 

Por qué modal no está funcionando? Cuando está abierto, aún puedo hacer clic en otros enlaces en la página y hacer cosas en segundo plano.

Muchas gracias

ACTUALIZACIÓN: Parece estar funcionando sin embargo. Solo los enlaces están activos en segundo plano y funcionando. ¿Cómo puedo desactivar todo, incluidos los enlaces?

+0

¿Tiene usted los archivos CSS pertinentes en el lugar correcto? Como recuerdo, el modal funciona colocando una superposición detrás del diálogo que evita que el usuario haga clic en cualquier otra cosa. Esta superposición requiere cierto CSS para funcionar. –

+0

No tengo css, ¿dónde/cómo debería definirlo? – Andrew

+0

viene con jqueryui –

Respuesta

19

Probablemente solo necesite incluir el CSS de jQuery UI en su página.

Google tiene esto en su CDN aquí:

http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css

La opción modal en el diálogo crea una capa debajo de su diálogo, pero en el resto del contenido. Esta superposición necesita el jQuery UI CSS para funcionar correctamente.

+1

¡Eso fue todo! Muchas gracias, brillante, no sé cómo podría olvidarlo – Andrew

+1

Es fácil, lo hago todo el tiempo. Pasé una hora intentando que Jquery trabajara el otro día en una nueva página y olvidé incluir jquery – Brad

16

Acabo de tener el mismo problema. Necesitaba el CSS, pero no quería todo. Así que sólo copia pegada esta parte de mi propio código CSS:

.ui-widget-overlay { 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
    background: #aaaaaa; 
    opacity: 0.3; 
} 
+0

Simple y al grano. Gracias. Funciona para mí :) –

+0

Gracias por señalar la parte necesaria del archivo .css :) – Vinzenz

+0

¡Increíble! Me siento tonto por no pensar en esto antes: P – ettdro

13

añadiendo solamente .ui-widget de superposición para el CSS hará que la superposición aparece en la parte superior completa, e incluso el diálogo será inutilizable.

Por lo tanto, la clase .ui-frente también debe ser añadido:

.ui-widget-overlay { 
    position: fixed; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
} 
.ui-front { 
    z-index: 100; 
} 
+0

Mucho mejor en mi caso que incluir todos los estilos básicos de jQ-UI. ¡Muchas gracias! – Arvid

Cuestiones relacionadas