saben porque al crear las imagenes ingresa a este metodo inmeditamente habilitando la ventana flotante sin haber dado click?.
Ademas, una vez cerrada la ventana no vuelve a suceder el evento, es como que si no se le hubiese asignado ese evento a las imagenes.
Código Javascript
:
Ver original//el parametro datos es el nombre del archivo .json, en este caso "datosLibros.json"
function cargarLibros(datos){
loadJSON(cargarLibros,datos);
var libros=JSON.parse(datos);
var ref=document.getElementById("librosInternacionales");
var s="";
for(var i=0;i<libros.length;i++){
var div=document.createElement("div");
div.className="divImg";
div.id="foto"+i;
ref.appendChild(div);
var imagen=document.createElement("img");
imagen.className="fotos";
imagen.src="imagenes/libro"+i+".jpg";
imagen.alt="imagen_libro";
imagen.onclick=clickImg(libros,""+i); //En esta linea es donde salta al metodo clickImg sin haber dado click
div.appendChild(imagen);
}
}
//----------------Este es el metodo que se ejecuta al dar click en una imagen, el que quiero agregar como atributo on click a cada imagen----------------
function clickImg(datos,numFoto){
var libros=datos;
var a=document.getElementById("ventana-flotante");
a.style.visibility='visible';
var v=document.getElementById("contenedor");
var obj=new Object();
s=obj.dato1=libros[numFoto].titulo;
v.innerHTML=s;
}
function loadJSON(callback, jsonFile) {
var xobj = new XMLHttpRequest();
xobj.overrideMimeType("application/json");
xobj.open('GET', jsonFile, true);
xobj.onreadystatechange = function () {
if (xobj.readyState === 4 && xobj.status === 200) {
callback(xobj.responseText);
}
};
xobj.send(null);
}