Foros del Web » Programando para Internet » Javascript »

click y mostrar un elemento.

Estas en el tema de click y mostrar un elemento. en el foro de Javascript en Foros del Web. Este patron lo repito muchas veces en mi pagina. Cita: <tr> <td class="descr_campo">descripción</td> <td colspan="8"> bla bla.... <div class="botonmas"><a href="#">boton</a></div> </td> </tr> <tr> <td class="mas" ...
  #1 (permalink)  
Antiguo 16/08/2012, 11:49
 
Fecha de Ingreso: noviembre-2005
Mensajes: 172
Antigüedad: 18 años, 5 meses
Puntos: 1
click y mostrar un elemento.

Este patron lo repito muchas veces en mi pagina.

Cita:
<tr>
<td class="descr_campo">descripción</td>
<td colspan="8">
bla bla....
<div class="botonmas"><a href="#">boton</a></div>

</td>
</tr>
<tr>
<td class="mas" colspan="9">
bla bla bla......................
</td>
</tr>

".mas" está de inicio con display:none y la idea es que al pulsar el boton se muestre esa fila (y al pulsar otra vez se esconda).

Puedo cambiar lo que quiera de la pagina, lo que quiero es que al pulsar un boton (cualquiera) se muestre la columna de la fila siguente, sobrecargando lo menos posible la pagina con DOM y demas codigo JavaScript.

¿Como lo hariais vosotros, sabios programadores?
  #2 (permalink)  
Antiguo 16/08/2012, 13:48
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: click y mostrar un elemento.

Pues podrías empezar no sobrecargando con tablas si no son necesarias o divs si tampoco lo son.

Necesitas poner un id al elemento que quieres mostrar/ocultar, de lo contrario, todos los elementos con la misma clase podrían sufrir el efecto.

Suponiendo que no usas jquery, haces una función en js:

Código Javascript:
Ver original
  1. function ocultar_mostrar(id){
  2.  var el=document.getElementById(id);
  3.   if(el.style.display='none')
  4.       el.style.display='block';
  5.   else
  6.       el.style.display='none';
  7. }
<a onclick="ocultar_mostrar('id_elemento')">boton</a>
  #3 (permalink)  
Antiguo 16/08/2012, 13:58
 
Fecha de Ingreso: noviembre-2005
Mensajes: 172
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: click y mostrar un elemento.

Cita:
Iniciado por ocp001a Ver Mensaje
Pues podrías empezar no sobrecargando con tablas si no son necesarias o divs si tampoco lo son.

Necesitas poner un id al elemento que quieres mostrar/ocultar, de lo contrario, todos los elementos con la misma clase podrían sufrir el efecto.

Suponiendo que no usas jquery, haces una función en js:

Código Javascript:
Ver original
  1. function ocultar_mostrar(id){
  2.  var el=document.getElementById(id);
  3.   if(el.style.display='none')
  4.       el.style.display='block';
  5.   else
  6.       el.style.display='none';
  7. }
<a onclick="ocultar_mostrar('id_elemento')">boton</a>
100 ids distintos?

Y si, podria usar jquery.
  #4 (permalink)  
Antiguo 16/08/2012, 16:13
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: click y mostrar un elemento.

Pues los ids que requieras, si no, no podrías referenciar un elemento en concreto. No veo mucho problema, yo tengo aplicaciones con cientos de ids en la misma pantalla y no hay baja de rendimiento, siempre y cuando optimices las operaciones que haces con dichos ids
  #5 (permalink)  
Antiguo 17/08/2012, 02:54
 
Fecha de Ingreso: noviembre-2005
Mensajes: 172
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: click y mostrar un elemento.

Cita:
Iniciado por ocp001a Ver Mensaje
Pues los ids que requieras, si no, no podrías referenciar un elemento en concreto. No veo mucho problema, yo tengo aplicaciones con cientos de ids en la misma pantalla y no hay baja de rendimiento, siempre y cuando optimices las operaciones que haces con dichos ids
Podría usando parentNode, nextElementSibling y todo eso.....

¿Tienes tantos addEventListener como ids?

Etiquetas: botones
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 11:14.