2011-06-06 5 views
7

me inyecto html para el diálogo a través de script como:¿Cómo se abre programáticamente un diálogo en jquery mobile alpha 4?

$("#misc-cntr").append('<div id="chk" data-rel="dialog" > </div>'); 

continuación en el éxito de devolución de llamada Ajax tengo:

success: function(msg) { 
$('#chk').html(msg) 
// open dialog here 
// $('#chk').dialog('open') does not work 
} 

dado anteriormente cómo puedo abrir el diálogo mediante programación?

Respuesta

10

Tendrá que cambiar la página a la misma, algo a lo largo de las líneas de:

$.mobile.changePage($('#chk'), 'pop', false, true); 

Si desea cerrar el diálogo a través de JavaScript, que necesitará:

$('#chk').dialog('close'); 

Espero que esto ayude.

+1

Su punta ayudó a hacer el show de diálogo emergente, pero el cuadro de diálogo aparece y se manifiesta por una fracción de segundo y luego desaparece. No estoy seguro de qué está causando este problema. – ace

+0

¿Puedes publicar un poco más de tu código, o mejor aún, lanzarlo a un JSFiddle para que podamos ver lo que está pasando? –

2

Esto es lo que he usado. Está muy sucio, pero utiliza un cuadro de diálogo real en lugar de una página emergente.

El div:

<div data-role="page" id="score" data-theme="d" data-transition="pop" /> 

El código jQuery:

var a = $('<a />').attr({ 
    href: '#score', 
    "data-rel": 'dialog' 
}).click(); 
1

La función changePage toma un objeto como segundo argumento. En él puede especificar cosas como rol y transición. Para su caso, debe establecer la función de 'diálogo'.

0
$.mobile.changePage($('#mydialog'),{'transition':'pop'}); 

O

$.mobile.changePage($('#mydialog'),'pop'); 
Cuestiones relacionadas