Foros del Web » Programando para Internet » Javascript »

Cambiar imagen en enlace con recuperación

Estas en el tema de Cambiar imagen en enlace con recuperación en el foro de Javascript en Foros del Web. Hola a Tod@s: He tratado de buscar en el foro una rutina que me permita "meter" en un enlace a parte del texto una pequeña ...
  #1 (permalink)  
Antiguo 14/06/2006, 00:06
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 4 meses
Puntos: 0
Pregunta Cambiar imagen en enlace con recuperación

Hola a Tod@s:
He tratado de buscar en el foro una rutina que me permita "meter" en un enlace a parte del texto una pequeña imagen del estilo de una carpeta
Y que al pinchar en el enlace esta carpeta cambie por otra que tengo de otro color, pero que al pinchar en otro enlace la primera se ponga en modo "normal" y la que cambie es la que pinché en ese momento.
Tengo que decir que los enlaces se generan con PHP esto quiere decir que no podré poner un nombre especifico tipo id="cambia" (eso creo);

He encontrado esto realizado por Caricatos
Código HTML:
var activa = true;
function alternar(esto) {
esto.src = (activa) ? "imagen2.gif" : "imagen1.gif";
activa = !activa;
}
y en el enlace
Código HTML:
<img onclick="alternar(this)" src="imagen1.gif" /> 
Pero cuando pincho en otro enlace el primero no recupera la imagen original
¿Como puedo hacerlo?
Gracias de antemano
Saludos
__________________
Hay tanto que aprender y tan poco tiempo
  #2 (permalink)  
Antiguo 14/06/2006, 00:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

A ver si te he entendido:

Código:
<html>
<head>
<script type="text/javascript">
var imagen = false;
var sustituta = "../miemoticon.gif";
var principal = "../emoticon.gif";
function alternar(esto) {
if (imagen) imagen.src = principal;
esto.src = sustituta;
imagen = esto;
}
</script>
</head>
<body >
<img src="../emoticon.gif" onclick="alternar(this)" />
<img src="../emoticon.gif" onclick="alternar(this)" />
<img src="../emoticon.gif" onclick="alternar(this)" />
<img src="../emoticon.gif" onclick="alternar(this)" />
</body>
</html>
Puedes probarlo aquí: Probador de scripts

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 14/06/2006, 05:52
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 4 meses
Puntos: 0
Gracias Caricatos por tu respuesta
Me has entendido a la perfeccion y funciona a la perfeccion PERO........
los enlaces que genera el PHP son de esta forma

Código HTML:
<a href="#"><img src="img_propio/carpeta.gif" alt="Carpeta" width="16" height="16" border="0" align="absmiddle" onClick="alternar(this);"/> <?php echo $row_Recordset1['nombre_galeria']; ?><?php echo $row_Recordset1['id_galeria']; ?></a> 
y así no me funciona, Mejor dicho funciona si se pincha en la imagen pero no funciona si se pincha en el enlace (de texto generado por php).
Tambien he provado a poner el onClick junto con el href de esta forma que es como lo tenia yo en priincipio.

Código HTML:
<a href="#"onClick="alternar(this);"/><img src="img_propio/carpeta.gif" alt="Carpeta" width="16" height="16" border="0" align="absmiddle" > <?php echo $row_Recordset1['nombre_galeria']; ?><?php echo $row_Recordset1['id_galeria']; ?></a> 
Pero no funciona.
¿Se te ocurre alguna solución?

Siento dar tanto la lata.
Un cordial Saludo
__________________
Hay tanto que aprender y tan poco tiempo
  #4 (permalink)  
Antiguo 14/06/2006, 08:49
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Lo que falla no es lo que genera php sino el enlace con href="#" que solo sirve para refrescar la página... Si quitas el enlace debería funcionar... y si ko tienes por mostrar la mano de los enlaces, puedes ponerla con estilos (cursor: pointer)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 14/06/2006, 11:33
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 4 meses
Puntos: 0
Gracias Caricatos de nuevo.
He sacrificado el enlace de texto y lo he acomodado a la imagen de esta forma:

Código HTML:
<img src="img_propio/carpeta.gif" alt="Carpeta" width="16" height="16" border="0" align="absmiddle" onClick="alternar(this);"/> <?php echo $row_Recordset1['nombre_galeria']; ?><?php echo $row_Recordset1['id_galeria']; ?> 
No es lo que tenia en mente en principio pero no ha quedado mal.
1.000.000 de gracias
Un cordial saludo
__________________
Hay tanto que aprender y tan poco tiempo
  #6 (permalink)  
Antiguo 14/06/2006, 16:18
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

El enlace podia cambiarse por cualquier otro tag contenedor del tipo en-linea (span), pero la costumbre de tags a con href="#" te recomiendo evitarlo porque refresca la página innecesariamente, gastando recursos... semanticamente un tag a es para enlazar y no para ejecutar funciones (tan solo se trata de una recomendación)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 15/06/2006, 05:31
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 4 meses
Puntos: 0
Hola Caricatos:
Se agradece la recomendacion, pues desconocia que consumiera recursos.
No hay mejor dicho "no te acostaras.....sin saber una cosa más".
Gracias por tu paciencia y atencion
Un cordial Saludo
__________________
Hay tanto que aprender y tan poco tiempo
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 13:22.