Показать сообщение отдельно
  #7 (permalink)  
Старый 06.05.2013, 08:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от 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>
Ответить с цитированием