Foros del Web » Programando para Internet » Jquery »

Cerrar ventana modal

Estas en el tema de Cerrar ventana modal en el foro de Jquery en Foros del Web. Hola a todos, En el discurso normal de una web en php, tengo un botón tal como éste: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < ...
  #1 (permalink)  
Antiguo 13/07/2013, 02:39
 
Fecha de Ingreso: marzo-2013
Mensajes: 83
Antigüedad: 11 años, 8 meses
Puntos: 0
Cerrar ventana modal

Hola a todos,

En el discurso normal de una web en php, tengo un botón tal como éste:

Código HTML:
Ver original
  1. <a href="Mostrar accion.php?idReunion=2" class="clsVentanaIFrame"tamano="G" rel="Detalle de la accion" title="Ver detalles"><img src="/Imagenes/Buscar.png"/></a>

el cual mediante javascript me genera un iframe, este es el código:

Código Javascript:
Ver original
  1. $(function(){
  2.     //evento que se produce al hacer clic en el boton cerrar de la ventana
  3.     $('.clsVentanaCerrar').live('click',function(eEvento){
  4.         //prevenimos el comportamiento normal del enlace
  5.         eEvento.preventDefault();
  6.         //buscamos la ventana padre (del boton "cerrar")
  7.         var $objVentana=$($(this).parents().get(1));
  8.         //cerramos la ventana suavemente
  9.         $objVentana.fadeOut(300,function(){
  10.             //eliminamos la ventana del DOM
  11.             $(this).remove();
  12.             //ocultamos el overlay suavemente
  13.             $('#divOverlay').fadeOut(500,function(){
  14.                 //eliminamos el overlay del DOM
  15.                 $(this).remove();
  16.             });
  17.         });
  18.     });
  19.    
  20.     $('.clsVentanaIFrame').on('click',function(eEvento){
  21.         //prevenir el comportamiento normal del enlace
  22.         eEvento.preventDefault();
  23.         //obtenemos la pagina que queremos cargar en la ventana y el titulo. esto es una anotación para pasar variables por GET-->+$('#Nombre').val()
  24.         var strPagina=$(this).attr('href'), strTitulo=$(this).attr('rel');
  25.        
  26.         //creamos la nueva ventana para mostrar el contenido y la capa para el titulo
  27.         var $objVentana=$('<div class="clsVentana'+$(this).attr('tamano')+'">'), $objVentanaTitulo=$('<div class="clsVentanaTitulo">');
  28.        
  29.         //agregamos el titulo establecido y el boton cerrar
  30.  
  31.         $objVentanaTitulo.append('<a href="" id="cerrar" class="clsVentanaCerrar"><img src="/Imagenes/Iconos/Cancelar.png" width="17" height="17" border="0"</></a>');
  32.         $objVentanaTitulo.append('<a href="" id="Eliminar" class="clsVentanaEliminar"><img src="/Imagenes/Eliminar.png" width="16" height="16" border="0"</></a>');
  33.         $objVentanaTitulo.append('<a href="" id="Editar" class="clsVentanaEditar"><img src="/Imagenes/Editar.png" width="16" height="16" border="0"</></a>');
  34.         $objVentanaTitulo.append('<strong>'+strTitulo+'</strong>');
  35.        
  36.         //agregamos la capa de titulo a la ventana
  37.         $objVentana.append($objVentanaTitulo);
  38.        
  39.         //creamos la capa que va a mostrar el contenido
  40.         var $objVentanaContenido=$('<div class="clsVentanaContenido'+$(this).attr('tamano')+'">');
  41.        
  42.         //agregamos un iframe y en el source colocamos la pagina que queremos cargar ;)
  43.         $objVentanaContenido.append('<iframe name="EsIframe" name="EsIframe" src="'+strPagina+'">')
  44.        
  45.         //agregamos la capa de contenido a la ventana
  46.         $objVentana.append($objVentanaContenido);
  47.        
  48.         //creamos el overlay con sus propiedades css y lo agregamos al body
  49.         var $objOverlay=$('<div id="divOverlay">').css({
  50.             opacity: .5,
  51.             display: 'none'
  52.         });
  53.         $('body').append($objOverlay);
  54.        
  55.         //animamos el overlay y cuando su animacion termina seguimos con la ventana
  56.         $objOverlay.fadeIn(function(){
  57.             //agregamos la nueva ventana al body
  58.             $('body').append($objVentana);
  59.             //mostramos la ventana suavemente ;)
  60.             $objVentana.fadeIn();
  61.         })
  62.     });
  63. });

Como veis, tengo un botón de cerrar esta ventana modal con clase (class="clsVentanaCerrar"), que si hago click sobre el, efectivamente me la cierra, pero resulta que dentro de esta ventana modal, hago una llamada a Ajax (guardar accion.php) para que me guarde el formulario, así que lo que quiero es que al terminar de guardar el formulario, la ventana modal se cierre automáticamente, he provado insertando el siguiente código al final de "guardar accion.php"

Código Javascript:
Ver original
  1. $('.clsVentanaCerrar').click ();

e incluso este si resultado también

Código Javascript:
Ver original
  1. $('.clsVentanaCerrar').trigger('click');

Última edición por joselegolas; 13/07/2013 a las 02:44
  #2 (permalink)  
Antiguo 13/07/2013, 18:27
 
Fecha de Ingreso: marzo-2013
Ubicación: Neuquén Capital
Mensajes: 111
Antigüedad: 11 años, 8 meses
Puntos: 8
Respuesta: Cerrar ventana modal

No veo la llamada ajax, pero si la haces con jquery, tenes la opcion del ejecutar una accion al finalizar la peticion. Ahi pondría el cerrar :D
  #3 (permalink)  
Antiguo 18/07/2013, 14:41
 
Fecha de Ingreso: marzo-2013
Mensajes: 83
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Cerrar ventana modal

Si la hago con jquery de la siguiente forma

Código Javascript:
Ver original
  1. <script>
  2. function Actualizar(N,E) {
  3.     $.ajax({
  4.     type: 'POST',
  5.     url: 'Filtros.php?N='+N+'&Salir='+E,
  6.     data: $('#DEAnivel1,#DEAnivel2,#DEAnivel3,#DEAnivel4,#DEAreunion,#Responsable'),
  7.     success: function(data) {$('#aquia').html(data);$('.clsVentanaCerrar').click ();}})        
  8.     return false; };
  9. </script>

También e intentado hacer un iFrame y al final del iframe poner

Código Javascript:
Ver original
  1. <script> $('.clsVentanaCerrar').click (); </script>

Que tampoco ha dado resultado, ya no se que más hacer...
  #4 (permalink)  
Antiguo 02/08/2013, 17:15
 
Fecha de Ingreso: mayo-2008
Mensajes: 224
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: Cerrar ventana modal

Proba con esto

Código PHP:
  <script language="javascript">
alert("Registro Guardado con exito");
var 
$jQuery=window.parent.$;
$jQuery('body').find('.clsVentanaCerrar').trigger('click');
window.parent.actualizar();
</
script 
Hay algunos pasos adicionales en el codigo que te pase.
Avisa del registro guardado y actualiza el padre con el nuevo dato.

Fijate si te sirve.

Etiquetas: ajax, modal
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:16.