Foros del Web » Programando para Internet » Jquery »

Saber que funcion de toggle se va a ejecutar (jquery)

Estas en el tema de Saber que funcion de toggle se va a ejecutar (jquery) en el foro de Jquery en Foros del Web. Ultimamente me estoy aficionando a usar jquery pero se me presenta un problema que no sé como resolver, a ver si consigo explicarme bien. Tengo ...
  #1 (permalink)  
Antiguo 29/06/2010, 09:43
 
Fecha de Ingreso: febrero-2010
Ubicación: Asturias patria querida
Mensajes: 45
Antigüedad: 14 años, 2 meses
Puntos: 4
Saber que funcion de toggle se va a ejecutar (jquery)

Ultimamente me estoy aficionando a usar jquery pero se me presenta un problema que no sé como resolver, a ver si consigo explicarme bien.

Tengo un evento toggle que abre y cierra un div oculto cada vez que haces click en un enlace, es algo asi:

Código PHP:
$('#id').toggle(function(){
      $(
'#id2').slideDown('fast');
},function(){
      $(
'#id2').slideUp('fast');
}); 
Hasta ahí bien, el problema es que quiero que cuando hagas click en cualquier otra parte de la web, si el div esta abierto se cierre, pero claro... sólo si esta abierto, ¿cómo podría hacer esto?

salu2
  #2 (permalink)  
Antiguo 29/06/2010, 15:16
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Saber que funcion de toggle se va a ejecutar (jquery)

Código Javascript:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3.   <head>
  4.     <title></title>
  5.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6.     <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
  7. <script>
  8.     $( function (){
  9.  
  10.         $('#id').click( function(){
  11.             $('#id2').slideToggle('fast');
  12.         });
  13.  
  14.         $(document.body).click( function (evt){
  15.             if ( $("#id2").is(":visible") && evt.target.id != "id")
  16.                 $('#id2').slideUp('fast');
  17.         });
  18.  
  19.     });
  20. </script>
  21.     <style>
  22.         #id2{height:30px; width:250px; background:red;}
  23.     </style>
  24.   </head>
  25. <body>
  26.  
  27.     <button id="id">Toggle</button>
  28.     <div id="id2"></div>
  29.  
  30. </body>
  31. </html>
  #3 (permalink)  
Antiguo 30/06/2010, 09:43
 
Fecha de Ingreso: febrero-2010
Ubicación: Asturias patria querida
Mensajes: 45
Antigüedad: 14 años, 2 meses
Puntos: 4
Respuesta: Saber que funcion de toggle se va a ejecutar (jquery)

Muchas gracias por tu respuesta, lo probaré. Hay que ver lo que me queda por aprender... esto no acaba nunca jaja
  #4 (permalink)  
Antiguo 08/07/2010, 12:46
 
Fecha de Ingreso: febrero-2010
Ubicación: Asturias patria querida
Mensajes: 45
Antigüedad: 14 años, 2 meses
Puntos: 4
Respuesta: Saber que funcion de toggle se va a ejecutar (jquery)

pues... no funciona el código que me has puesto, el div abre y cierra cuando pulsas en el link/boton pero cuando pulsas en el body no se cierra.

agradeceria que alguien me ayudase porque sigo sin conseguirlo.
  #5 (permalink)  
Antiguo 08/07/2010, 15:28
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Saber que funcion de toggle se va a ejecutar (jquery)

seguro que probas haciando clic en la parte de abajo del div que firefox no lo toma pero hacelo seleccionando "document" en vez de "document.body"

a mi me funciona

Código Javascript:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3.   <head>
  4.     <title></title>
  5.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6.     <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
  7. <script>
  8.     $( function (){
  9.  
  10.         $('#id').click( function(){
  11.             $('#id2').slideToggle('fast');
  12.         });
  13.  
  14.         $(document).click( function (evt){
  15.             if ( $("#id2").is(":visible") && evt.target.id != "id")
  16.                 $('#id2').slideUp('fast');
  17.         });
  18.  
  19.     });
  20. </script>
  21.     <style>
  22.         body{background-color:blue}
  23.         #id2{height:30px; width:250px; background:red;}
  24.     </style>
  25.   </head>
  26. <body>
  27.  
  28.     <button id="id">Toggle</button>
  29.     <div id="id2"></div>
  30.  
  31. </body>
  32. </html>

Etiquetas: ejecutar, funcion, toggle
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 00:22.