Foros del Web » Programando para Internet » Javascript »

Problema "tonto" con función de manejo de array

Estas en el tema de Problema "tonto" con función de manejo de array en el foro de Javascript en Foros del Web. Buenas tardes: Estoy seguro que la solución es simple, pero estoy bloqueado, lo admito, y no ato ni desato. Verán, en Dynamicdrive encontré un script ...
  #1 (permalink)  
Antiguo 26/08/2011, 13:17
Avatar de freesoftwarrior  
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Problema "tonto" con función de manejo de array

Buenas tardes:
Estoy seguro que la solución es simple, pero estoy bloqueado, lo admito, y no ato ni desato. Verán, en Dynamicdrive encontré un script para el efecto "tip del día" que funciona bien, pero sólo tiene la opción de avanzar en los tips pero no retroceder, es decir, una vez cargada la ventana, los tips sólo puedes "verlos siempre hacia adelante" pero no retrocer.

El array lo forma

Cita:
todmsg=new Array();
y la función para avanzar es ntip. Decidí agregarle la función ptip para retroceder pero no funciona bien. Primero porque al retroceder el primer elemento sale "undefined" y luego si funciona bien, pero si esta en el registro 14, por ejemplo, y luego le doy "siguiente", se salta como 3 registros, no es secuencial, se va al 17. Igual es si estoy avanzando hasta el 15 y le doy "previo" salta hasta el 11 y a veces aparece -1.

La primera función es la que viene con el script, la segunda es la que he creado para el botón "previo".


Cita:
function ntip(){
if (cnt<todmsg.length-1)
cnt++;
else
cnt=0;
mtxt.innerHTML=todmsg[cnt];
cntr.innerHTML=(cnt+1)+"/"+todmsg.length;
}


function ptip(){
if (cnt>0)
cnt--;
else
cnt=todmsg.length;
mtxt.innerHTML=todmsg[cnt];
cntr.innerHTML=(cnt-1)+"/"+todmsg.length
}
Si alguien puede darme una ayuda por favor, les quedaré agradecido. Estoy seguro que he cometido un error tonto pero la verdad no lo logro ver.

Saludos desde Lima, Perú
  #2 (permalink)  
Antiguo 26/08/2011, 13:52
Avatar de laratik  
Fecha de Ingreso: mayo-2010
Ubicación: Cali
Mensajes: 317
Antigüedad: 13 años, 10 meses
Puntos: 63
Respuesta: Problema "tonto" con función de manejo de array

Buenas tardes freesoftwarrior, te falto restarle 1 al largo del array (Recuerda el index de un array va desde 0 hasta length-1), ademas no habia necesidad de colocar:

Código:
cntr.innerHTML=(cnt-1)+"/"+todmsg.length
Con dejarlo como estaba funcionaba igual, ya que lo que hace es dar el valor del indice del array+1, en fin quedaria algo como esto:

Código Javascript:
Ver original
  1. function ntip(){
  2. if (cnt<todmsg.length-1)
  3. cnt++;
  4. else
  5. cnt=0;
  6. mtxt.innerHTML=todmsg[cnt];
  7. cntr.innerHTML=(cnt+1)+"/"+todmsg.length;
  8. }
  9.  
  10. function ptip(){
  11. if (cnt>0) {
  12.     cnt--;
  13. }
  14. else {
  15.     cnt=todmsg.length-1;
  16. }
  17. mtxt.innerHTML=todmsg[cnt];
  18. cntr.innerHTML=(cnt+1)+"/"+todmsg.length
  19. }

Espero haberte sido de ayuda.
__________________
Programar apasiona y lo que apasiona es un arte, por lo tanto programar es un arte.

Quiero karma para en mi próxima vida ser un billonario bien dotado con alas.
  #3 (permalink)  
Antiguo 26/08/2011, 14:48
Avatar de freesoftwarrior  
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Respuesta: Problema "tonto" con función de manejo de array

Me siento un burro jajaja..... bien decía que era una cosa de nada, ¿cómo no pude verlo?. Lo de la última línea si lo comprendo: como estoy "retrocediendo" pues siempre debería de restar... pero el detalle de la línea 15 ese sí no lo vi ni en broma...... mil mil mil gracias!!!!!!

Etiquetas: html, manejo
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:57.