Foros del Web » Programando para Internet » Javascript »

¿Cómo optimizar ésta función?

Estas en el tema de ¿Cómo optimizar ésta función? en el foro de Javascript en Foros del Web. Hola a todos/as, Tengo una función de js, bastante simple, oculta un div y muestra otro, pero es un poco larga, porque hay varios div, ...
  #1 (permalink)  
Antiguo 23/03/2010, 10:54
 
Fecha de Ingreso: julio-2009
Mensajes: 103
Antigüedad: 14 años, 9 meses
Puntos: 2
Pregunta ¿Cómo optimizar ésta función?

Hola a todos/as,

Tengo una función de js, bastante simple, oculta un div y muestra otro, pero es un poco larga, porque hay varios div, cómo puedo optimizarla para reducir el código a menos líneas, de js sé lo mínimo y ya de bucles...


La función en cuestión:

Código PHP:
<script type="text/javascript">

            $(
document).ready(function() {
                $(
".enlace_turismo_sig").click(function() {
                    $(
"#uno").css("display""none");
                    $(
"#dos").css("display""block");}
                );
                
                $(
".enlace_turismo_ant2").click(function() {
                    $(
"#dos").css("display""none");                                     
                    $(
"#uno").css("display""block");}
                );
                
                $(
".enlace_turismo_sig2").click(function() {
                    $(
"#dos").css("display""none");
                    $(
"#tres").css("display""block");}
                );
                
                $(
".enlace_turismo_ant3").click(function() {
                    $(
"#tres").css("display""none");
                    $(
"#dos").css("display""block");}
                );
                
                $(
".enlace_turismo_sig3").click(function() {
                    $(
"#tres").css("display""none");
                    $(
"#cuatro").css("display""block");}
                );
                
                $(
".enlace_turismo_ant4").click(function() {
                    $(
"#cuatro").css("display""none");
                    $(
"#tres").css("display""block");}
                );
            });

</script> 
  #2 (permalink)  
Antiguo 23/03/2010, 14:30
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 5 meses
Puntos: 56
Respuesta: ¿Cómo optimizar ésta función?

Si obtienes un objeto($div) por su clase en Jquery, se aplica a todos los objetos con la misma clase, no tienes por que agregar diferente identificador de clase para cada objeto, si haces la misma función.

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.                 $(".enlace_turismo_sig, .enlace_turismo_ant2,
  3. .enlace_turismo_sig2, .enlace_turismo_ant3, .etc").click(function() {
  4.                     $("#uno").hide()
  5.                     $("#dos").show();}
  6.                 );
  7. });

Si quieres optimizarlo aun mas, agregale otra clase a todos los divs que le asignas la función:
<div class="enlace_turismo_sig muestra2oculta1"></div>
<div class="enlace_turismo_ant2 muestra2oculta1"></div>

Quedaría:

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.                 $(".muestra2oculta1").click(function() {
  3.                     $("#uno").hide()
  4.                     $("#dos").show();
  5.     });
  6. });

PD: El tema va en Frameworks.
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */

Última edición por America|UNK; 23/03/2010 a las 14:35
  #3 (permalink)  
Antiguo 23/03/2010, 14:36
Avatar de netzky  
Fecha de Ingreso: mayo-2007
Mensajes: 56
Antigüedad: 17 años
Puntos: 1
Respuesta: ¿Cómo optimizar ésta función?

Ahi te va una ayudadita...

Código Javascript:
Ver original
  1. $(function(){
  2.    $(".enlace_turismo").click(function(){
  3.          $(".clase_secundaria_de_las_divisiones").hide();
  4.          var id = $(this).attr("rel"); //Usar el Atributo REL del "Link" o "Enlace" para ahi especificar el ID del elemento a mostrar
  5.          $("#" + id).show();
  6.          return false;
  7.    });
  8.  
  9. });

Espero te sirva, algun problema o duda no dudes en avisar.. saludos
__________________
Mess With The Best and Die Like The Rest
  #4 (permalink)  
Antiguo 24/03/2010, 03:36
 
Fecha de Ingreso: julio-2009
Mensajes: 103
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: ¿Cómo optimizar ésta función?

La función que has puesto America|UNK, sería para dos 2 divs, pero en mi caso tengo 4 y cada enlace es diferente en lo que tiene que mostrar y ocultar.

La función tuya, netzky, a los enlaces he visto que tengo que añadirle al atributo rel, cuando pulso un enlace, almacena ese nombre en la variable id y lo muestra. Pero la parte de ocultar no la entiendo bien, ¿cómo le paso el nombre del que debe ocultar?, porque no es fijo, depende del que se esté mostrando.

Etiquetas: Ninguno
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 21:30.