2010-02-04 17 views
7

Aquí hay una pregunta rápida que es probablemente más simple de lo que estoy pensando.¿Cerrar un cuadro de diálogo de la interfaz de usuario jQuery desde un elemento dentro de él?

Estoy poblando un cuadro de diálogo de la interfaz de usuario jQuery con el html resultante de una llamada $ .ajax(). En ciertos casos, html incluye un botón que, al hacer clic, quiero cerrar el cuadro de diálogo que lo contiene.

Suponiendo que no sé nada sobre el elemento que se especificó para ser el diálogo usando $("#element").dialog() ... (es decir, no tengo idea de qué es el selector "#elemento" del contenido interno del diálogo) - ¿Cuál es el ¿La mejor manera de cerrar el diálogo desde un elemento al que se hace clic dentro?

Respuesta

16

Uso closest()

$(this).closest('.ui-dialog-content').dialog('close'); 
+2

Interesante ... en realidad no parece que .ui-dialog sea el selector correcto. El cuadro de diálogo corta algunos divisores, y el que parece necesitar el diálogo ('cerrar') llamado no es ".ui-dialog" ... sigue investigando ... – womp

+0

parece .closest ('. Ui -dialog-content '). dialog (' close '); es lo que se necesita – womp

+0

@ Womp, sí, el elemento '.ui-dialogue' es el elemento de ajuste que jQuery coloca alrededor del contenido original para convertirlo en un cuadro de diálogo. – Alnitak

2

Algo así como:

$('a.close').click(function(e) { 
    $(this).closest('.dialog').dialog('close'); 
}); 
+0

lo que si el elemento está anidado? – nickf

+0

Estaba arreglando mi muestra justo cuando escribió – adamJLev

Cuestiones relacionadas