Это потому, что внутренняя анонимная функция закрывает переменную i, поэтому она всегда будет показывать вам последнее значение итерации. Вы делаете следующее:
Core.addEventListener(thumbs[i], "click", (function( j)
{
return function()
{
alert(j);
};
})(i));
Пояснение:
В вашем коде переменная итерации i является своего рода глобальной переменной для внутренних анонимных функций, которую вы создаете для обработчика событий, но вы должны заметить, что, хотя создается впечатление, что вы создаете другую анонимную функцию, все они смотрят на i, которая в более глобальный охват, и он все тот же я для всех них. Таким образом, последнее значение будет предупреждено, чтобы избежать его, я создал другую функцию-обертку для вас, чтобы заключить значение i в другую область видимости, чтобы другой элемент мог видеть другое предупреждение. Объяснение в комментариях также верно, я советую вашему Google закрыть Javascript и прочитать несколько статей о нем, как только вы поймете, что оно может стать очень мощным оборудованием.