Я пытаюсь назначить функцию для события onclick динамически созданного тега "a" в JavaScript. Все теги создаются в цикле следующим образом:
for ( var i = 0; i < 4; i++ )
{
var a = document.createElement( "a" );
a.onclick = function( ) { alert( i ) };
document.getElementById( "foo" ).appendChild( a );
}
Предупреждающее значение для всех четырех ссылок всегда "4". Довольно очевидно. Когда googling я наткнулся на сообщение, которое показывает следующий фрагмент кода:
a.onclick = (function(p, d) {
return function(){ show_photo(p, d) }
})(path, description);
Мне удалось настроить его для моих нужд и я получил предупреждение (i), чтобы работать правильно, но я буду признателен, если кто-нибудь сможет объяснить, что именно делает этот код.