JavaScript - href dinamico

   
Vista:

href dinamico

Publicado por Mellamoelvo (4 intervenciones) el 08/02/2011 13:51:58
He creado una función de manera que, cuando pulse el siguiente botón:

[HTML]
<map name="Map">
<area shape="rect" coords="321,3,360,27" a href="#" onClick="chancenow()"; >
</map>[/HTML]

Llame a una función que, en esencia, va cambiando la imagen que se muestra y, además, pretendo que cambie el href que va ligado a cada imagen:

[HTML]<script type="text/javascript">
var n = 0;
var mazork;

function chancenow() {
document.getElementById('imagenit').src = 'imagenes/imagen' + (++n % 5) + '.jpg';

mazork=document.getElementById('imagenit').src;

if (mazork = 'imagenes/imagen1.jpg'){
document.getElementById('urls').href = 'http://www.compasfilms.com';
}

if (mazork = 'imagenes/imagen2.jpg'){
document.getElementById('urls').href = 'http://www.daepc.org';
}

if (mazork = 'imagenes/imagen3.jpg'){
document.getElementById('urls').href = 'http://www.bazarcarnivoro.com';
}


}
</script>[/HTML]

Las imagen inicial esta puesta así:

[HTML]<div id="imol">
<a href="http://www.compasfilms.com/" target="_blank" id="urls">
<img src="imagenes/imagen1.jpg" name="Image28" width="541" height="278" border="0" id="imagenit">
</a>
</div>[/HTML]

Pues bien, el código tiene el defecto de que, a pesar de que me cambia las imagenes bien, y que me recoge bien los cambios en la variable "mazork" cada vez que hago clic en el botón, el href cambia, pero siempre a la última url, la de http://www.bazarcarnivoro.com.

Creo que el fallo está en la comparación de variables de los "IF" porque si la variable alberga bien la cadena en cada momento, desconozco porqué no entra en los IFs anteriores y siempre entra en el último IF sin cumplir la condición.. :ojotes:

Ejemplo:
Imagen1 --> url1
Clic 1º--> Imagen 2 --> url2
Clic 2º --> Imagen 3 -->url3

Pero en realidad hace:
Imagen1 --> url1
[B]Clic 1º--> Imagen 2 --> url3[/B]
Clic 2º --> Imagen 3 -->url3

Y si añadiese más imagenes y urls, pasa lo mismo:
Pero en realidad hace:
Imagen1 --> url1
Clic 1º--> Imagen 2 --> url3
Clic 2º --> Imagen 3 -->url3
Clic 3º --> Imagen 4 -->url3

He probado de todas las formas que se me han ocurrido con los ifs, pero nada:
if (mazork = 'imagenes/imagen1.jpg'){
if (mazork == 'imagenes/imagen1.jpg'){
if (mazork = "imagenes/imagen1.jpg"){
if (mazork == 'imagenes/imagen1.jpg'){
[...]

Mil gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:href dinamico

Publicado por nkox (13 intervenciones) el 08/02/2011 19:03:24
Hola

Primero algunas observaciones:

1. en tu código haces asignación en vez de comparación
var1 = b -> significa que la variable var1 toma el valor de la variable b.

2. En la definición del tag <area> hay un carácter 'a' de sobra (<area shape="rect" coords="321,3,360,27" a href="#" onClick="chancenow()"; > )

3. el evento onclick debe ir en el tag <map> no en el tag <area>.

4. si quieres usar el mapeado, en el tag <img> debes poner el atributo usemap

5. Yo quité el mapeado ya que el tag <a> ya que el atributo href tiene "preferencia" sobre el mapeado.

Prueba lo siguiente:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>jaja</title>
</head>
<body>
<div id="imol">
<a href="#" target="_blank" id="urls" onclick="chancenow()">
<img src="imagenes/imagen1.jpg" name="Image28" width="541" height="278" border="0" id="imagenit">
</a>
</div>
<script type="text/javascript">
var n = 1;
var imagenit = document.getElementById('imagenit'),
urls = document.getElementById('urls');
function chancenow() {
if( imagenit.src.indexOf('imagen1.jpg') > 0 ){
urls.href = 'http://www.compasfilms.com';
}
if( imagenit.src.indexOf('imagen2.jpg') > 0 ){
urls.href = 'http://www.daepc.org';
}
if( imagenit.src.indexOf('imagen3.jpg') > 0 ){
urls.href = 'http://www.bazarcarnivoro.com';
}
var modulo = ++n % 4;
if( modulo == 0 ) n = 1;
imagenit.src = 'imagenes/imagen' + ( modulo > 0 ? modulo : 1 ) + '.jpg';
}
</script>

</body>
</html>

Saludos
P.D: probado en Firefox 3.6.8
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:href dinamico

Publicado por Mellamoelvo (4 intervenciones) el 08/02/2011 23:50:27
Muchísimas gracias!
Eres un crack! Problema resuelto!
:-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar