Code:
<body>
<div id="myImages"></div>
<! THIS IS THE DIV MY CONTENT NEEDS TO GO IN-->
<div id="viewImage"></div>
<script type="text/javascript">
//ajaxrequest
var imageBankXhr = XHR();
imageBankXhr.open('get', 'imagebank.php', false);
imageBankXhr.send(null);
var myXmlFeed = imageBankXhr.responseXML;
var imageBank = myXmlFeed.documentElement.childNodes;
// here i get the images and properties from an external xml
var aFragment = document.createDocumentFragment();
for (var i=0; i<imageBank.length; i++) {
var newDiv = document.createElement('div');
newDiv.className = 'myImage';
var newImage = document.createElement('img');
newImage.src = imageBank[i].childNodes[0].childNodes[0].nodeValue;
newImage.imageid = imageBank[i].attributes[0].nodeValue;
newImage.caption = imageBank[i].childNodes[1].childNodes[0].nodeValue;
newDiv.appendChild(newImage);
aFragment.appendChild(newDiv);
}
document.getElementById('myImages').appendChild(aFragment);
// ADD EVENT REFERS TO ATTACHEVENT / ADDEVENTLISTENER
var myImageDivs = document.getElementById('myImages').childNodes;
for (var i=0; i<myImageDivs.length; i++) {
addEvent(myImageDivs[i].getElementsByTagName('img')[0], 'click', showImage);
}
/*
THIS FUNCTION WORKS FINE WHEN I ALERT THE RESULT, IT ONLY
WORKS ONE TIME, WHEN I USE INNERHTML OR TEXTCONTENT OR
INNERTEXT... AS SOON AS THE DIV HAS CONTENT IT DOESNT WORK
ANYMORE (only tested it in ff and safari)
*/
function showImage(e) {
target = e.target || e.srcElement;
document.getElementById('viewImage').innerHTML = target.caption;
}
</script>
</body>
Comment