valor texto span por pasar obtener name modificar link insertar con como codigo cambiar asignar jquery jquery-ui dialog callback effects

texto - ¿Cómo adjuntar la devolución de llamada al efecto jquery en el diálogo mostrar?



obtener valor por name jquery (5)

Descargué el paquete dev de jquery ui y descubrí que la devolución de llamada está configurada con "completo":

$( ".selector" ).dialog({ show: ''slide'', complete: function() {} });

Gracias por ayudar a todos a resolver esto :)

Mi problema es que no sé cómo adjuntar la devolución de llamada al programa de diálogo jquery ui.

El espectáculo es en realidad una opción:

$( ".selector" ).dialog({ show: ''slide'' });

Deseo recibir una devolución de llamada una vez que se complete la animación de diapositivas. Miré desde los efectos en sí y tienen una devolución de llamada:

effect( effect, [options], [speed], [callback] )

Pero en el diálogo, el efecto se configura de manera muy diferente. Intenté también poner:

$( ".selector" ).dialog({ show: ''slide'', callback: function() {} });

Pero no funcionó.

Sugerencias?


Dos años más tarde, la solución sugerida (por @andyb) ya no funciona en las versiones actuales de jQuery UI (específicamente desde v1.10.0). Su solución se basó en el método de devolución de llamada complete : una función no documentada.

He encontrado una solución actualizada, usando el objeto jQuery Promise :

$("#dialog").dialog({ show: { effect: "drop", direction: "up", duration: 1000 }, hide: { effect: "drop", direction: "down", duration: 1000 }, open: function () { $(this).parent().promise().done(function () { console.log("[#Dialog] Opened"); }); }, close: function () { $(this).parent().promise().done(function () { console.log("[#Dialog] Closed"); }); } });

Aquí está la demo habitual de JSFiddle: http://jsfiddle.net/losnir/jcmpm/


Intenta usar open evento open de diálogo:

$( ".selector" ).dialog({ open: function(event, ui) { ... } });


Me pareció necesario usar el evento "focus:". Estaba perdiendo el botón correctamente seleccionado por el espectáculo: Interacciones encantadoras

focus: function( event, ui ) { $(this).siblings(''.ui-dialog-buttonpane'').find("button:contains(''Upload'')").focus(); },


Actualización 2015-07-27 Para cualquier persona que use jQuery v1.10.0 o superior, consulte esta otra respuesta ya que mi solución no funcionará con las versiones más recientes de jQuery.

Respuesta original

Ya respondí, pero ya que tenía una respuesta, la voy a publicar de todos modos ...

$(''#dialog'').dialog({ show: { effect: ''slide'', complete: function() { console.log(''animation complete''); } }, open: function(event, ui) { console.log(''open''); } });

Muestra open seguido de animation complete en la consola