I'm dynamically inserting some html into the document (by using obj.innerHTML += 'some html'). In that html, there are images with 'imageId_X' ids (ie. imageId_1, imageId_2...). This works fine, but there's something wrong with the following code:
for (var n = 0; n < pConfig.images.length; n++)
{
document.getElementById('imageId_' + n).onclick = function()
{
alert(n);
}
}
There are 4 elements in the pConfig.images and alert(n) always alerts 4. Why is this happening, what am i doing wrong?
innerHTML+=. This involves serialising the element's existing DOM content into an HTML string, adding to the string, and then parsing everything back into new DOM objects. This is slow and loses any non-serialisable information in the process, including any form field values, JavaScript references or event handlers.