Foros del Web » Programando para Internet » Jquery »

Como funciona jquery UI dialog()?

Estas en el tema de Como funciona jquery UI dialog()? en el foro de Jquery en Foros del Web. Estuve visitando la pagina del UI: http://jqueryui.com/demos/dialog/#modal-confirmation E implemente las cosas como las entiendo: Cargo jquery, ui.core, ui.draggable, etc. Pongo el html tal como es ...
  #1 (permalink)  
Antiguo 29/10/2009, 11:17
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Como funciona jquery UI dialog()?

Estuve visitando la pagina del UI:

http://jqueryui.com/demos/dialog/#modal-confirmation

E implemente las cosas como las entiendo:

Cargo jquery, ui.core, ui.draggable, etc.


Pongo el html tal como es el del ejemplo de la pagina:

Cita:
<div id="dialog" title="Empty the recycle bin?">
<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>
La foto se va a borrar!. Seguro?</p>
</div>
Llamo asi:

Cita:
$("#dialog").dialog();
Y no funciona. IE me dice "object don't support this property or method".
  #2 (permalink)  
Antiguo 01/11/2009, 05:20
 
Fecha de Ingreso: junio-2007
Mensajes: 189
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Como funciona jquery UI dialog()?

Prueba esto

Código javascript:
Ver original
  1. $("#dialog").dialog({autoOpen: true});
  #3 (permalink)  
Antiguo 01/11/2009, 09:25
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Respuesta: Como funciona jquery UI dialog()?

Mil gracias por responder. A partir de leer tu respuesta, hice una pagina nueva para implementar dialog() y funcionó de la manera sencilla, aun sin autoOpen. Entonces no se porque el otro dia no anduvo en mi web, pero voy a tratar de que funcione y te cuento.

Dicho sea de pasp, recien encontre en la pagina de jquery mucha mas documentacion de la que tiene la propia ui.
  #4 (permalink)  
Antiguo 01/11/2009, 16:16
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Respuesta: Como funciona jquery UI dialog()?

Me esta funcionando la ventanita, y ya incluso conecte esta interfaz a un plugin de ajax. Todo va bien navegando por ventanitas ajax.

El problema ahora es que solo puedo llamar a dialog() una solo vez. Cuando cierro la ventanita ya no puedo volver a abrirla:
Cita:
$("#llave").click(function(){
$("#dialog").html(datos).dialog({ resizable: false, draggable: false });
})
QUe sera?

Dejo link a la pagina.

Última edición por mayid; 01/11/2009 a las 16:47
  #5 (permalink)  
Antiguo 03/11/2009, 09:03
 
Fecha de Ingreso: junio-2009
Mensajes: 15
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Como funciona jquery UI dialog()?

Yo lo utilizo asi.... Espero que te pueda ayudar

$(function(){
crearComportamientoDialog();
});

function crearComportamientoDialog{
$("#miDiv").dialog({
open: function(event, ui) {
},
close: function(event, ui) {
},
bgiframe: true,
autoOpen: false,
modal: true,
width: 500,
resizable: false,
draggable: false,
position: 'center',
buttons: {
'Aceptar': function() {
//lo que quieras hacer cuando se pulsa aceptar
},
'Cancelar': function() {
//hacemos lo que se quiera y cerramos el dialog
$(this).dialog('close');
}
}
});
}

function abrirDialog(){
$("#miDiv").dialog('open');
}

<input onclick="abrirDialog" ................/>

Si en las sucesivas veces ya no funciona será porque despues de una llamada ajax tienes que volver a darle el comportamiento de dialog, o bien asignar el evento de nuevo al boton. (con este ejemplo no hace falta hacer esto ultimo porque la fucion a ejecutar esta escrita en el propio boton)

Espero que sirva de algo

Suerte!
  #6 (permalink)  
Antiguo 03/11/2009, 09:11
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Respuesta: Como funciona jquery UI dialog()?

Si me sirvio, gracias.

Hice un engendro: primero declaro que no es autoopen, pero seguidamente anexo una llamada .dialog('open') y ahora el boton funciona todas las veces :

$("#dialog").html(datos).dialog({ resizable: false, draggable: false, closeOnEscape: true, bgiframe: true, autoOpen: false, modal: true, position: 'center'}).dialog('open');
  #7 (permalink)  
Antiguo 15/12/2009, 11:42
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años
Puntos: 43
Respuesta: Como funciona jquery UI dialog()?

hola a todos,
para no abrir un nuevo tema ya que se trata del mismo jquery y efecto hago la consulta aca.
Como puedo hacer para que en mis links de mi mi aplicacion asi:
Código HTML:
Ver original
  1. <a class="delete" id="delete" href="index.php?modules=noticias&amp;opcion=borrar&amp;id=<? echo $noticia['id_noticia'];?>" title="Borrar Noticia">
  2.                                     Borrar
  3.                                 </a>

se me abra el dialog para confirmar o no si quiero eliminar el registro y si hace click en aceptar me lo borre. Yo venia usando algo asi:
Código Javascript:
Ver original
  1. $("#dialog").dialog({
  2.                 bgiframe: true,
  3.                 autoOpen: false,
  4.                 resizable: false,
  5.                 height:140,
  6.                 modal: true,
  7.                 overlay: {
  8.                     backgroundColor: '#000',
  9.                     opacity: 0.5
  10.                 },
  11.                 buttons: {
  12.                     'Si': function() {
  13.                         /*var url =$('.delete').attr("href");
  14.                         location.href=url;*/
  15.                         return true;
  16.                     },
  17.                     'Cancelar': function() {
  18.                         //$(this).dialog('close');
  19.                         return false;
  20.                     }
  21.                 }
  22.             });                    
  23.              
  24.             $('#delete').click( function(e){
  25.                $(this).click(function(){
  26.                    $('#dialog').dialog('open');
  27.                    return false;
  28.                 });                
  29.                
  30.             });

pero me borra siempre el primer registros por más que haga click en el segundo o en el último como puedo solucionarlo? La idea es que al hacer click en el link borrar me salga el dialog (para reemplazar el feo "alert" por defecto de js) y que me borre o no ese registro.

Desde ya muchas gracias
  #8 (permalink)  
Antiguo 16/12/2009, 07:29
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Respuesta: Como funciona jquery UI dialog()?

No termino de entender el problema, pero recomiendo que si tenes mas de una funcion (borrar, etc) tengas tambien mas de un div para el dialog. Yo tuve problemas con eso de borrar al comartir un div.

Quedaria asi:

Cita:
$("#borrar").dialog({ ...
  #9 (permalink)  
Antiguo 16/12/2009, 08:41
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años
Puntos: 43
Respuesta: Como funciona jquery UI dialog()?

el problema esta en que si yo imprimo en un alert esta linea:
Código Javascript:
Ver original
  1. var url =$('.delete').attr("href");
  2. alert(url);
me muestra la url del link al borrar, pero simpre es la misma si yo tengo estos links:
Código HTML:
Ver original
  1. <a class="delete" id="delete" href="index.php?modules=noticias&amp;opcion=borrar&amp;id=1" title="Borrar Noticia">
  2.                                           Borrar
  3.                                       </a>
  4. <a class="delete" id="delete" href="index.php?modules=noticias&amp;opcion=borrar&amp;id=3" title="Borrar Noticia">
  5.                                           Borrar
  6.                                       </a>
  7. <a class="delete" id="delete" href="index.php?modules=noticias&amp;opcion=borrar&amp;id=7" title="Borrar Noticia">
  8.                                           Borrar
  9.                                       </a>
si hago click en el primer link me sale el dialog y me eliminar el item 1, pero si hago click en cualquiera de los otros dos, me sigue queriendo borrar el link 1.
Entiendo lo que dices de no compartir un div para borrar, pero si tengo 20 links voy a tener que crear 20 divs ?

Actualmente lo tengo asi:
Código Javascript:
Ver original
  1. function ask(obj){
  2.     if (confirm("Seguro que quiere eliminarlo?"))
  3.         return true;
  4.     else
  5.         return false;
  6. }

y el html
Código HTML:
Ver original
  1. <a class="delete" id="delete2" onclick="if (ask()) window.location='index.php?modules=links&amp;opcion=borrar&amp;id=2'" href="#" title="Borrar Enlace">
  2.  
  3.                                     Borrar
  4.                                 </a>

como se podria reemplazar esa funcion de js por el dialog?

salu2
  #10 (permalink)  
Antiguo 16/12/2009, 11:38
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Respuesta: Como funciona jquery UI dialog()?

Estas confundiendome con el html. Hiciste copy paste para publicar aqui? O es tu html original? Porque esta ok que utilices class name "delete", pero no que repitas el id, que tiene que ser unico.

Por otro lado, si cada link tuviera un id numerico unico, tu funcion podria definir el atributo sin que necesitaras repetir esto para cada item (veo que ya lo tenes resuelto, pero estoy pensando segun el codigo html original):
Cita:
index.php?modules=noticias&amp;opcion=borrar&amp;i d=7
Tendrias esto:
Cita:
<a class="delete" id="1" href="#" title="Borrar Noticia">
Borrar
</a>
<a class="delete" id="3" href="#" title="Borrar Noticia">
Borrar
</a>
<a class="delete" id="7" href="#" title="Borrar Noticia">
Borrar
</a>
SIendo que la funcion quedaria asi:
Cita:
var links = $(".delete");
links.each(function(){

$(this).click(function(){

ask();
window.location='index.php?modules=links&opcion=bo rrar&id=2
});

})
Quizas el origen de tu error sea el caracter & en la cadena url (de variables GET)

Cita:
&amp;
Por que no sensillamente "&"? Quizas este todo bien con esa sintaxis, pero la desaconsejo.

Cita:
index.php?modules=noticias&amp;opcion=borrar&amp;id=1
  #11 (permalink)  
Antiguo 13/04/2011, 16:47
 
Fecha de Ingreso: enero-2008
Mensajes: 2
Antigüedad: 16 años, 10 meses
Puntos: 0
De acuerdo Respuesta: Como funciona jquery UI dialog()?

Amigos, mi problema era el del Dialog que solo se muestra una vez, el detalle era por el autoOpen que debe ir a false y hacer la llamada desde la funcion. Solo comento para agradecer que me ha servido su apoyo. Saludos
  #12 (permalink)  
Antiguo 03/08/2011, 10:59
 
Fecha de Ingreso: junio-2011
Mensajes: 11
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Como funciona jquery UI dialog()?

Cita:
Iniciado por anikore Ver Mensaje
Amigos, mi problema era el del Dialog que solo se muestra una vez, el detalle era por el autoOpen que debe ir a false y hacer la llamada desde la funcion. Solo comento para agradecer que me ha servido su apoyo. Saludos
Hola,

Estoy teniendo problemas con el dialog() y creo q podrías ayudarme.

Lo que pretendo hacer es tener una lista de links y cuando pincho en uno de ellos abrir una ventana. El contenido que se mostrará en la ventana variará pero ahora mismo lo único que trato de hacer es q si pincho en uno de los links, me da igual en cual, me abra la ventana, pero sólo me la abro si pincho en el primer link.

Los links q utilizo son asi: <a href="#" id="opener">Open Dialog</a>

mi javascript es este:

<script type="text/javascript">
// increase the default animation speed to exaggerate the effect
$.fx.speeds._default = 1000;
$(function() {
$( "#dialog" ).dialog({
autoOpen: false,
show: "blind",
hide: "scale"
});

$( "#opener" ).click(function() {
$( "#dialog" ).dialog( "open" );
return false;
});
});
</script>

¿Necesito identificar de algun modo cada uno de los links?

Gracias de antemano!
  #13 (permalink)  
Antiguo 04/08/2011, 16:50
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Respuesta: Como funciona jquery UI dialog()?

Me imagino que no le estas poniendo a todos los links el mismo id, no? Eso traería problemas con el uso de javascript.
  #14 (permalink)  
Antiguo 08/08/2011, 07:35
 
Fecha de Ingreso: junio-2011
Mensajes: 11
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Como funciona jquery UI dialog()?

Cita:
Iniciado por mayid Ver Mensaje
Me imagino que no le estas poniendo a todos los links el mismo id, no? Eso traería problemas con el uso de javascript.
Hola, pues le pongo a todos lo de id="opener", con lo cual eso estaría mal, pero si le pongo distintos ids... ¿Cómo hago a la hora de llamar a esta función?

$( "#opener" ).click(function() {
$( "#dialog" ).dialog( "open" );
return false;
});

Es decir, ¿Cómo le paso el id que es en cada caso?

Estoy muy verde con javascript.

Muchas gracias.
  #15 (permalink)  
Antiguo 09/08/2011, 18:16
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Respuesta: Como funciona jquery UI dialog()?

Y sabes de html? javascript nunca va en contra del html, así que tenes que no repitamos el mismo id para una misma pagina. Los id son UNICOS. Y si necesitas seleccionar un grupo, asignales un class name.

Luego, jQuery usar selectores muy similares a CSS. Por lo tanto #opener se refiere a un objeto, mientras que .opener a todos los objetos con ese class name. En fin, usa un selector por clase.

Podes documentarte sobre esto buscando un poco en la web.

Saludos!
  #16 (permalink)  
Antiguo 10/08/2011, 10:23
 
Fecha de Ingreso: junio-2011
Mensajes: 11
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Como funciona jquery UI dialog()?

Cita:
Iniciado por mayid Ver Mensaje
Y sabes de html? javascript nunca va en contra del html, así que tenes que no repitamos el mismo id para una misma pagina. Los id son UNICOS. Y si necesitas seleccionar un grupo, asignales un class name.

Luego, jQuery usar selectores muy similares a CSS. Por lo tanto #opener se refiere a un objeto, mientras que .opener a todos los objetos con ese class name. En fin, usa un selector por clase.

Podes documentarte sobre esto buscando un poco en la web.

Saludos!
Gracias.
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 05:54.