Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Cambiar de pagina al pulsar sobre una imagen

Estas en el tema de Cambiar de pagina al pulsar sobre una imagen en el foro de Javascript en Foros del Web. Hola tengo un problema con unas imagenes y no se como solucionarlo. Tengo cuatro imagenes que las cargo desde una base de datos @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 04/05/2015, 09:59
 
Fecha de Ingreso: noviembre-2014
Mensajes: 27
Antigüedad: 9 años, 5 meses
Puntos: 0
Cambiar de pagina al pulsar sobre una imagen

Hola tengo un problema con unas imagenes y no se como solucionarlo. Tengo cuatro imagenes que las cargo desde una base de datos

Código Javascript:
Ver original
  1. function cargarImagenes(miArray){
  2.     var array_datos=JSON.parse(miArray);
  3.     var div=document.createElement("div");
  4.     for(var i in array_datos){
  5.         var imagen=document.createElement("img");
  6.         imagen.setAttribute("src","imagenes/"+array_datos[i].IMAGEN);
  7.         imagen.setAttribute("value",array_datos[i].ID_CURSO);
  8.         imagen.addEventListener('click',irACurso,true);
  9.         div.appendChild(imagen);
  10.     }
  11. }

La variable miArray obtiene los datos de una consulta anterior a la base de datos para que muestre las imagenes.

Una vez que pulso la imagen que deseo quiero que me vaya a otra pagina que tenga relacion con la imagen que e pulsado. En este caso la funcion es la siguiente:

Código Javascript:
Ver original
  1. function irACurso(){
  2.     var cod_curso="";
  3.     var imagen=document.getElementsByName("imagen");
  4.     for(var i in imagen){
  5.         cod_curso=imagen[i].value;
  6.     }
  7.     alert("imagen "+cod_curso);
  8. }

Lu único que quiero de momento es que el último alert me muestre el código que se corresponde con la imagen pulsada pero lo unico que obtengo es un valor "undefined".
Si alguien sabe que puede estar pasando y me puede ayudar se lo agradeceria mucho y si algo no se entiende de lo que necesito podeis preguntar
  #2 (permalink)  
Antiguo 04/05/2015, 12:11
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Cambiar de pagina al pulsar sobre una imagen

Lo que pasa es que el elemento img no puede tener el atributo value. En su defecto, puedes asignarle un atributo personalizado el cual puedes recuperar con el método getAttribute o con la propiedad dataset.

Código HTML:
Ver original
  1. <img id = "foo" data-propiedad = "bar" />

Código Javascript:
Ver original
  1. //Con getAttribute
  2. alert(document.querySelector("#foo").getAttribute("data-propiedad")); //bar
  3.  
  4. //Con dataset
  5. alert(document.querySelector("#foo").dataset.propiedad); //bar

Otro error que veo que cometes es que intentas tomar al conjunto de imágenes mediante el nombre 'imagen' cuando debería de ser img, además de que el método que deberías de usar es getElementsByTagName pues, el que estás usando, toma a los elementos por el valor de la propiedad name y no veo que asignes alguno, sin embargo, como solo deseas obtener el valor del —ya realizada la corrección— atributo personalizado, puedes usar la palabra reservada this puesto que realizas la llamada a la función irACurso al darle clic a la imagen.

Código Javascript:
Ver original
  1. function irACurso(){
  2.     alert(this.dataset.propiedad);
  3. }

Como las imágenes son creadas de manera dinámica, debes de usar el método setAttribute para crear los atributos personalizados ya que la propiedad dataset es de solo lectura.

Código Javascript:
Ver original
  1. imagen.setAttribute("data-propiedad", "imagenes/"+array_datos[i].IMAGEN);

Y no olvides adherir el <div> creado en la primera función al documento o a alguna parte de este.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 04/05/2015, 15:24
 
Fecha de Ingreso: noviembre-2014
Mensajes: 27
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Cambiar de pagina al pulsar sobre una imagen

Muchas gracias por la ayuda Alexis. La verdad que el concepto de dataset no lo habia visto en javascript y con tu indicacion y buscando su documentacion en internet ya me ha quedado un poco mas claro. Ademas ya he conseguido que me muestre la informacion correspondiente a esa imagen asi que no he tenido ningun problema aplicando esto a mi codigo.
Muchas Gracias

Etiquetas: funcion, js, pulsar, valor, variable
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 23:56.