Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Simplificar código

Estas en el tema de Simplificar código en el foro de Frameworks JS en Foros del Web. Muy buenas, por mi gramática javascripteriana se notará que soy bastante novato usando jQuery . Quisiera preguntar si hubiera alguna forma de simplicar éste código: ...
  #1 (permalink)  
Antiguo 21/07/2009, 02:46
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 4 meses
Puntos: 2114
Simplificar código

Muy buenas,

por mi gramática javascripteriana se notará que soy bastante novato usando jQuery. Quisiera preguntar si hubiera alguna forma de simplicar éste código:

Código javascript:
Ver original
  1. $(document).ready(function (){
  2.            
  3.             $("#slider1 h3").click(function (){
  4.                 $("#slider2 div").slideUp("250");
  5.             });
  6.            
  7.             $("#s1").click(function (){
  8.                 $("#g1").slideDown("500");
  9.             });
  10.            
  11.             $("#s2").click(function (){
  12.                 $("#g2").slideDown("500");
  13.             });
  14.            
  15.             $("#s3").click(function (){
  16.                 $("#g3").slideDown("500");
  17.             });
  18.            
  19.             $("#s4").click(function (){
  20.                 $("#g4").slideDown("500");
  21.             });
  22.            
  23.             $("#s5").click(function (){
  24.                 $("#g5").slideDown("500");
  25.             });
  26.            
  27.             $("#s6").click(function (){
  28.                 $("#g6").slideDown("500");
  29.             });
  30.            
  31.             $("#s7").click(function (){
  32.                 $("#g7").slideDown("500");
  33.             });
  34.            
  35.            
  36.            
  37.         });

Lo que hace resumidamente, es una especie de accordion pero, los elementos que hacen de título (enlace para hacer aparecer/desaparecer un bloque) no están seguidos de su correspondiente bloque (como es el caso del accordion <h3></h3><div></div><h3></h3><div></div> etc..) y así pues me vi obligado a ponerle un ID a cada elemento (#sX es el título y #gX el bloque del contenido).

Tampoco sé muy bien el uso de variables y el "this" en javascript, que igual por ahí algo pudiera hacerse. Igual me equivoco, vaya, que tiendo a ello de vez en cuando.

No sé si se pudiera prescindir de poner un ID a cada elemento, que sería lo ideal pienso.

Bueno, cualquier ayuda la agradezco.

Saludos.
  #2 (permalink)  
Antiguo 23/07/2009, 13:17
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 17 años, 1 mes
Puntos: 14
Respuesta: Simplificar código

Hola

Se me ocurre algo asi:

1. Capturar todos los elementos con id = s*
2. Saber a quien se le hizo click y en base a esto ejecutar el slideDown del otro


Código javascript:
Ver original
  1. $("[id^='s']").click(function(e){
  2.  
  3. if($(this).id = e.target.id){
  4.        numero_id = e.target.id[1];
  5.       $("#g"+numero_id).slideDown('500');
  6.  
  7. }
  8.  
  9. });
  10.  
  11. Para el primer caso si tendrias que hacerlo a pie.
  12.  
  13.  
  14. Suerte.
__________________
My path is lit by my own fire, I only go where I desire
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 19:10.