Сообщение от DmitriSpartak
|
Проблема в том, что выводится наибольшее существующее i, то есть в данном примере 69. Как это исправить?
|
прочесть статью про
Замыкания
в частности
Пример ошибочного использования
Вариант решения ...
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<script>
var i;
//var j;
var strCit = new Array()
window.onload = function()
{
var imgCit = new Array()
for(i=0; i < 100; i++)
{
imgCit[i] = document.getElementById("imgCit"+i);
if (imgCit[i])
{
imgCit[i].onclick = bbcode(i);
//j=i;
}
}
}
function bbcode(i)
{
return function ()
{
alert(i);
}
}
</script>
</head>
<body>
<img id="imgCit64" src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif"/>
<img id="imgCit65" src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif"/>
<img id="imgCit67" src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif"/>
<img id="imgCit68" src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif"/>
<img id="imgCit69" src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif"/>
</body>
</html>