Foros del Web » Programando para Internet » Javascript »

Cambiar imagen con onClick

Estas en el tema de Cambiar imagen con onClick en el foro de Javascript en Foros del Web. Buenas. He probado cambiando mil cosas, tampoco sé mucho de javascript, pero tengo algo así, y no funciona ni a tiros. :( Código: <script language="JavaScript"> ...
  #1 (permalink)  
Antiguo 03/02/2006, 22:15
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Cambiar imagen con onClick

Buenas.

He probado cambiando mil cosas, tampoco sé mucho de javascript, pero tengo algo así, y no funciona ni a tiros. :(

Código:
  <script language="JavaScript">
function cambia() {
    if(document.getElementById('cambia').src == "/imagenes/botones/mostrar-menu-principal.gif") {
      document.getElementById('cambia').src = "/imagenes/botones/ocultar-menu-principal.gif";
	} else {
	document.getElementById('cambia').src = "/imagenes/botones/mostrar-menu-principal.gif";
	}
}
  </script>
<a href="?m=g" onClick="cambia();"><img name="cambia" src="/imagenes/botones/mostrar-menu-principal.gif" class="muestraMenu"></a>
Luego, también quiero que funcione un "return false;", pero que lo he probado a meter en el onclick, pero sigue al vínculo de todas formas.
¿Alguien sabe cómo hace que esto funcione?

Un saludo.
  #2 (permalink)  
Antiguo 04/02/2006, 03:56
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola BoNeZ

En la imágen tienes puesto un name, pero en la función estás usando el id. Pon el enlace así y debería funcionarte:
Código:
<a href="?m=g" onClick="cambia(); return false"><img id="cambia" src=...
Saludos,
  #3 (permalink)  
Antiguo 04/02/2006, 04:15
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
También puedes ponerlo así:

function cambia(pepe) {
ruta="/imagenes/botones/";
pepesrc=(pepe.src == ruta+"mostrar-menu-principal.gif")?ruta + "ocultar-menu-principal.gif":ruta + mostrar-menu-principal.gif";
}

y llamarlo con:
<img onClick="cambia()" id="cambia" src=...
Dejando el anchor igual.
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #4 (permalink)  
Antiguo 04/02/2006, 04:25
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:

La costumbre de usar enlaces para los eventos no la creo recomendable... puedes usar la función en la misma imagen:

Código:
<img name="cambia" id="cambia" src="/imagenes/botones/mostrar-menu-principal.gif" class="muestraMenu" onclick="cambia()">
Ahora un par de apuntes:

Si lees el src de la imagen, los navegadores devuelven su ruta completa y no la relativa, así que no te funcionará el código tal como lo tienes.

if (laImagen.src == "http://www.tudominio.com/imagenes.botones/mostrar-menu-principal.gif")

Otra forma de que te funcionase, sería usando alguna otra variable global con la información de estado:

var estadoImagen = "original";

y la condición hacerla de otra manera...

if (estadoImagen == "original")...

y a la vez actualizar la variable global.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 04/02/2006, 07:35
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
...........
  #6 (permalink)  
Antiguo 04/02/2006, 07:36
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Cita:
Iniciado por BoNeZ
Aham, no sabía lo de las rutas.

Al final lo dejé así
Código HTML:
    if(document.cambia.src == 'http://www.dominio.com/imagenes/botones/mostrar-menu-principal.gif') {
      document.cambia.src = 'http://www.dominio.com/imagenes/botones/ocultar-menu-principal.gif';
	} else {
	document.cambia.src = 'http://www.dominio.com/imagenes/botones/mostrar-menu-principal.gif';
	}
Y funciona bien.
La función aparte de cambiar la imagen, cambia una capa, el menú, y lo de usar el enlace para el evento, lo haga para por si no se tiene activado javascript, que siga el enlace, y así cargue el otro menú, es decir, que haga el mismo efecto javascript, pero sin javascript.

Lo dicho, que funciona perfectamente, muchas gracias.
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:50.