Ver Mensaje Individual
  #5 (permalink)  
Antiguo 01/10/2010, 10:50
Avatar de perryjr
perryjr
 
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 14 años, 4 meses
Puntos: 27
Respuesta: expandir varios div dinámicos

Si tienes varias cajas y quieres seleccionarlas todas a la vez me parece que es una buena idea seleccionarlas por clases. La clase "mostrar" y "caja" a lo mejor pueden estar asociadas a estilos CSS o no, pero sirven para que JavaScript reconozca todos los elementos.

Código PHP:
Ver original
  1. // esta variable guardará la caja abierta para poder cerrarla si abrimos otra
  2. var abierto;
  3.  
  4. $(function()
  5. {
  6.  
  7. // selecciona todos los elementos con la clase "mostrar"
  8. $(".mostrar").click(function(event) {
  9.   event.preventDefault();
  10.  
  11.   var id = $(this).attr('id');
  12.   id = id.split('-')[1]; // cogemos el identificador desde el atributo id
  13.  
  14.   // seguramente haya maneras de hacerlo mejor, pero eso te lo dejo a ti
  15.   // tenemos un problema y es que slideTooggle() usa 1/2 segundillos para la
  16.   // animación y la ejecución sigue su paso. Si ponemos este código después de slideToogle()
  17.   // el comportamiento seria imprevisible dependiendo solo de la velocidad del cliente.
  18.   if($('#caja-' + id).css('display') == 'none') // ahora invisible, se hará visible
  19.     abierto = $('#caja-' + id);
  20.   else // ahora abierto, se hará invisible
  21.    abierto = null;
  22.  
  23.   $("#caja-" + id).slideToggle();
  24. });
  25.  
  26. $(".caja a").click(function(event) {
  27.   event.preventDefault();
  28.   $(this).parent().slideUp();
  29.   abierto = null;
  30. });
  31.  
  32. });
  33.  
  34.  
  35.  
  36. <div><a id="mostrar-'.$idusuario.'" class="mostrar">'.$nombre.'</a></div>
  37. <div id="caja-'.$idusuario.'" class="caja">
  38. '.$telefonouser.'
  39.  
  40. </div>

De nuevo, aquí me tienes si el código no te funciona =D
__________________
I (L) Google