Foros del Web » Programando para Internet » Javascript »

por que solo al segundo?

Estas en el tema de por que solo al segundo? en el foro de Javascript en Foros del Web. que tal, creo dinamicamente tablas en cuya primera celda siempre va una imagen de unas felchas las cuales creo asi: Código PHP: nueva_imagen  =  document ...
  #1 (permalink)  
Antiguo 25/09/2007, 15:36
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Pregunta por que solo al segundo?

que tal, creo dinamicamente tablas en cuya primera celda siempre va una imagen de unas felchas las cuales creo asi:

Código PHP:
nueva_imagen document.createElement('img');
nueva_imagen.id='img_hija_'+n;//n es por la variable del for
nueva_imagen.setAttribute('src''Icons/flecha_abajo.gif'); 
ahora, el chiste es que cuando precione esa imagen (una flecha hacia bajo) se cambie por otra imagen (una flecha hacia arriba), entonces utilizo:

Código PHP:
var im3;
function 
cambia(objImg) {//el parametro contiene el objeto de la imagen seleccionada
  
objImg.src = (im3) ? 'Icons/flecha_abajo.gif' 'Icons/flecha_arriba.gif';
  
im3 = !im3;

eso me funciona, pero en ocaicones no se por que pero necesito darlo dos veces clic a la imagen para que cambie, alguien tiene idea de por que? de antemano gracias!
__________________
Wow! No se que decir...
  #2 (permalink)  
Antiguo 25/09/2007, 15:40
Avatar de m4xp0wer  
Fecha de Ingreso: septiembre-2007
Mensajes: 66
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: por que solo al segundo?

Parece que la variable im3 es global, y no parece que esté inicializada. Además, si tienes n imágenes, deberías tener un array de im3[], una para que controlara cada imagen.
Por lo menos es lo que yo puedo sacar de los fragmentos de código que pones ahí
  #3 (permalink)  
Antiguo 25/09/2007, 16:06
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Re: por que solo al segundo?

que tal, gracias por responder y asi es, im3 es una variable Global, si la inicializo da el mismo problema, lo del arreglo no lo creo necesario ya que conosco la ID de cada imagen, creo que el problema no es tan complicado, pero por hay se me esta iendo algo :S , segun io era sencillo, si es verdadero me da un valor, si no me da el otro, no se que pasa....espero me puedan ayudar, gracias!
__________________
Wow! No se que decir...
  #4 (permalink)  
Antiguo 25/09/2007, 16:11
Avatar de m4xp0wer  
Fecha de Ingreso: septiembre-2007
Mensajes: 66
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: por que solo al segundo?

Claro,pero el tema es el siguiente: imagínate que tienes dos imágenes con flecha_abajo. Al cambiar una de ellas, estás cambiando también la variable im3, con lo que al intentar cambiar la segunda el valor de im3 no será el esperado, y tendrás que clicar dos veces para cambiarlos.
prueba con esta función, a ver...
function cambia(objImg)
{
objImg.src = (objImg.src=='Icons/flecha_abajo.gif') ?'Icons/flecha_arriba.gif':'Icons/flecha_abajo.gif'
}

Si es flecha abajo pon flecha arriba. Sino flecha abajo

Ya me contarás como te fue
  #5 (permalink)  
Antiguo 25/09/2007, 16:11
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Re: por que solo al segundo?

sorry, tienes muchisima razón, no habia entendido lo del arreglo, por hay va el asunto...gracias.
__________________
Wow! No se que decir...
  #6 (permalink)  
Antiguo 25/09/2007, 16:16
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Re: por que solo al segundo?

me ganaste, bueno hay otro problemita, si mando

objImg.src=='Icons/flecha_abajo.gif'

nunca entrara a mi condicion, aunque io le aya asignado al objeto.src el valor de 'Icons/flecha_abajo.gif' cuando hago la comparacion la funcion me dice que objImg.src vale toda la ruta completa de mi proyecto, es decir 'http://localhost:8080/MiProyecto/Icons/flecha_abajo.gif', eso es otra cosa que si de palno no entiendo... :S
__________________
Wow! No se que decir...
  #7 (permalink)  
Antiguo 25/09/2007, 16:21
Avatar de m4xp0wer  
Fecha de Ingreso: septiembre-2007
Mensajes: 66
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: por que solo al segundo?

Pues no sé... o haces lo de los arrays ( con lo cual tendrías que mandar un nº a la función), o utilizas alguna clase de función de string de este estilo en la condición

obgImg.src.search('flecha_abajo.gif')!=-1
  #8 (permalink)  
Antiguo 26/09/2007, 08:14
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Re: por que solo al segundo?

que onda, gracias por tus respuestas, me sirvio esa fncion de search(), no la conocia y me sera muy util para otras cosillas...muchas gracias de nuevo!
__________________
Wow! No se que decir...
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 00:28.