Foros del Web » Programando para Internet » Javascript »

ayuda sencilla

Estas en el tema de ayuda sencilla en el foro de Javascript en Foros del Web. hola a todos, soy muy novato en javascript y estoy intentando aprender de forma autodidacta. Me encuentro con el siguiente problema. He adaptado una función ...
  #1 (permalink)  
Antiguo 13/07/2010, 01:42
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
ayuda sencilla

hola a todos, soy muy novato en javascript y estoy intentando aprender de forma autodidacta. Me encuentro con el siguiente problema. He adaptado una función que muestra y oculta capas, pero como veréis no tengo muchos conocimientos.
había pensado hacerlo mejor con unas condiciones while, if, etc... pero no sé por donde empezar.
os adjunto parte del código. GRACIAS y SALUDOS!

function muestra_oculta(id , id1, id2, id3, id4, id5, id6, id7, id8, id9, id10, id11, id12, id13, id14, id15, id16, id17, id18, id19, id20, id21, id22, id23, id24, id25){
if (document.getElementById){
var el = document.getElementById(id);
el.style.display = (el.style.display = 'block')
var el1 = document.getElementById(id1);
el1.style.display = (el1.style.display = 'none')
var el2 = document.getElementById(id2);
el2.style.display = (el2.style.display = 'none')
var el3 = document.getElementById(id3);
el3.style.display = (el3.style.display = 'none')
var el4 = document.getElementById(id4);
el4.style.display = (el4.style.display = 'none')
???.
  #2 (permalink)  
Antiguo 14/07/2010, 00:17
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: ayuda sencilla

alguien puede hecharme un cable?? GRACIAS!!!
  #3 (permalink)  
Antiguo 14/07/2010, 00:52
 
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona
Mensajes: 289
Antigüedad: 17 años
Puntos: 8
Respuesta: ayuda sencilla

Hola,

No hace falta que doblepostees... Ten paciencia que seguro que alguien te contesta.

Sobre tu pregunta, no entiendo muy bien que quieres saber. Para empezar, no se que hace el if (document.getElementById) Pero suponiendo que lo se, me parece una locura hacer una función con 25 parámetros!!!

Me puedes explicar que es lo que pretendes que haga tú función? Si lo entiendo quizás te puedo dar una solución más óptima!

Por ejemplo, no entiendo por que todos están a "none" menos el primero...

Saludos!
  #4 (permalink)  
Antiguo 14/07/2010, 01:30
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 20 años, 5 meses
Puntos: 53
Respuesta: ayuda sencilla

ok, si bien entendi quieres hacer una función que oculte DIVs y muestre uno solo a la vez, de ser asi checa este código.

Código Javascript:
Ver original
  1. //siempre es bueno encapsular tu codigo
  2. var Helper = {
  3.  
  4.     //funcion que muestra un solo elemento y oculta el resto
  5.     tabs  : function(actual,oculta){
  6.         var actual = this.get(actual);     //elemento a desplegar
  7.        
  8.         for(var i=0;i<oculta.length;i++){
  9.              this.get(oculta[i]).style.display = "none";   //se ocultan todos los demas
  10.         }
  11.         actual.style.display = "block";
  12.     },
  13.  
  14.     //funcion que regresa un nodo del DOM por su ID
  15.     //se puede mejorar mucho mas, pero para dejar las cosas
  16.    //sencillas asi esta bien :)
  17.      get   : function(id){
  18.           return   document.getElementById(id);
  19.      }
  20.  
  21. }
  22.  
  23.  
  24. //cuando el documento este listo....
  25. window.onload = function(){
  26.  
  27.      //ejecutando el codigo
  28.      Helper.tabs("id4",["id1","id2","id3","id5","id6"]);
  29.  
  30. }

En tu documento HTML algo asi

Código HTML:
Ver original
  1. <div id="id1"></div>
  2. <div id="id2"></div>
  3. <div id="id3"></div>
  4. <div id="id4"></div>
  5. <div id="id5"></div>
  6. <div id="id6"></div>


la funcion tabs recibe dos parametros, el primero es el identificador del div que quieres mostrar, el segundo parametro es un arreglo con los identificadores de los divs que quieres ocultar, de esta manera lo haras dinamico y no tienes que pasar N cantidad de parametros, solo son necesarios 2.

No he probado el código, solo lo escribí para darte un ejemplo tratando de seguir la lógica de tu primer post ;)

Saludos

Etiquetas: sencilla
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 02:07.