Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Jqueryui dialog no abre la segunda vez

Estas en el tema de Jqueryui dialog no abre la segunda vez en el foro de Jquery en Foros del Web. Hola a todos. tengo este codigo Código: function Ventanica(url,titulo,ancho,alto) { //configuro la ventanica $("<div id='"+titulo+"' class='loaderchachi'><div id='loader'>&nbsp;</div></div>") .dialog({ "title" : titulo , "width" : ancho ...
  #1 (permalink)  
Antiguo 05/10/2016, 14:31
 
Fecha de Ingreso: octubre-2015
Ubicación: españa
Mensajes: 53
Antigüedad: 9 años, 1 mes
Puntos: 1
Jqueryui dialog no abre la segunda vez

Hola a todos.

tengo este codigo

Código:
function Ventanica(url,titulo,ancho,alto) { //configuro la ventanica
	 $("<div id='"+titulo+"' class='loaderchachi'><div id='loader'>&nbsp;</div></div>")
      .dialog({ "title" : titulo , "width" : ancho , "height" : alto ,close : function(){ $('.Li'+titulo).attr("onclick", "Ventanica('"+titulo+".php','"+titulo+"','"+ancho+"','"+alto+"');");}  })
      .dialogExtend({
        "closable" : true,
        "maximizable" : true,
        "minimizable" : true,
        "collapsable" : false,
        "dblclick" : "maximize",
        "titlebar" : "transparent",
        "minimizeLocation" : "right",
        "icons" : {
          "close" : "ui-icon-close",
          "maximize" : "ui-icon-plus",
          "minimize" : "ui-icon-minus",
          "restore" : "ui-icon-bullet"
        },
        "load" : function(){
	        $("#loader").html('<div class="loader-container"><div class="spinchachi"></div></div>');
			$("#"+titulo).load("/Paginas/"+url, function(response, status, xhr) { $("#loader").html(''); 
				if ( status == "error" ) { var msg = "Ocurrio un error al cargar contenido remoto: ";
					 $().toastmessage('showToast', { text : msg + xhr.status + " " + xhr.statusText , sticky : false, type : 'alert' });
				}
			$('.Li'+titulo).attr("onclick", '$("#'+titulo+'").dialogExtend("restore");');
			});
        },
        "beforeMaximize" : function(evt) { EfectosmenuA(); $('#micromenusuario').css('top', 40); $('.Li'+titulo).attr("onclick", '$("#'+titulo+'").dialogExtend("restore");'); },
        "beforeRestore" : function(evt){ EfectosmenuC(); $('#micromenusuario').css('top', 10); },
        "beforeMinimize" : function(evt) { },
        "beforeclose" : function(evt) { $('.Li'+titulo).attr("onclick", "Ventanica('"+titulo+".php','"+titulo+"','700','500');"); }
        });	
   };
al que llamo usando esto:

Código HTML:
<li class="LiMensajes" onclick="Ventanica('Mensajes.php','Mensajes','500','400')"> 
la primera vez funciona genial, se me abre una ventana de dialogo usando jqueryui, el problema viene cuando la cierro y quiero volver a abrirla, que se abre la ventana pero no carga el contenido de .load

¿alguna alma caritativa podría echarme una mano a ver en que me estoy equivocando que me lleva loco?
¿quizás tengo que destruir el load de alguna forma?
  #2 (permalink)  
Antiguo 26/12/2016, 11:21
 
Fecha de Ingreso: octubre-2015
Ubicación: españa
Mensajes: 53
Antigüedad: 9 años, 1 mes
Puntos: 1
Respuesta: Jqueryui dialog no abre la segunda vez

la solución fue destruir la ventana al cerrarla.

el código que use al final fue este:

Código:
function Ventanica(url,titulo,ancho,alto) { //configuro la ventanica
	 $("<div id='"+titulo+"' class='loaderchachi'><div id='loader'>&nbsp;</div></div>")
      .dialog({ "title" : titulo , "width" : ancho , "height" : alto ,close : function(){ $(this).dialog("destroy"); $('.Li'+titulo).attr("onclick", "Ventanica('"+url+"','"+titulo+"','"+ancho+"','"+alto+"');"); $("#dock"+titulo).removeClass("active").addClass("cerrado"); } })
      .dialogExtend({
	      "autoOpen": false,
        "closable" : true,
        "maximizable" : true,
        "minimizable" : true,
        "collapsable" : false,
        "dblclick" : "maximize",
        "titlebar" : "transparent",
        "minimizeLocation" : "right",
        "icons" : {
          "close" : "ui-icon-close",
          "maximize" : "ui-icon-plus",
          "minimize" : "ui-icon-minus",
          "restore" : "ui-icon-bullet"
        },
        "load" : function(){
	        $("#loader").html('<div class="loader-container"><div class="spinchachi"></div></div>');
			$("#"+titulo).load("/Paginas/"+url, function(response, status, xhr) { $("#loader").html(''); 
				if ( status == "error" ) { var msg = "Ocurrio un error al cargar contenido remoto: ";
					 $().toastmessage('showToast', { text : msg + xhr.status + " " + xhr.statusText , sticky : false, type : 'alert' });
				}
			$('.Li'+titulo).attr("onclick", '$("#'+titulo+'").dialog("moveToTop");');
			$("#dock"+titulo).addClass("active");
			});
        },
        "beforeMaximize" : function(evt) { EfectosmenuA(); $('#micromenusuario').css('top', 40); $('.Li'+titulo).attr("onclick", '$("#'+titulo+'").dialogExtend("restore");'); $("#dock"+titulo).removeClass("abierto").addClass("active"); },
        "beforeRestore" : function(evt){ EfectosmenuC(); $('#micromenusuario').css('top', 10); $("#dock"+titulo).removeClass("abierto").addClass("active"); },
        "beforeMinimize" : function(evt) { $("#dock"+titulo).removeClass("active").addClass("abierto"); },
        });
   };
la diferencia vital radica en esto:

Código HTML:
close : function(){ $(this).dialog("destroy"); }
por si alguien tiene el mismo problema

Etiquetas: dialog, jqueryui, segunda, vez
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 16:30.