Причиной вашей проблемы является выражение lamba в вашем коде. Когда вы определяете свою анонимную функцию как обработчик onclick, вы привязываете ее к внешней переменной n, которая в конце цикла всегда равна 4, поэтому вы получаете ее всегда 4.
Чтобы сделать это так, как вы запланировали, вам нужно сделать следующее:
for (var n = 0; n < pConfig.images.length; n++)
{
function( n) {
document.getElementById('imageId_' + n).onclick = function()
{
alert(n);
}
}( n);
}
Следовательно, вы определяете отдельную область видимости для переменной.