Показать сообщение отдельно
  #1 (permalink)  
Старый 11.11.2010, 19:48
Аватар для kukuyok
Интересующийся
Отправить личное сообщение для kukuyok Посмотреть профиль Найти все сообщения от kukuyok
 
Регистрация: 11.09.2010
Сообщений: 23

Когда локальные возомнили себя глобальными
Обработчиком document.body.onload назначена функция:
function initilitto()
	{
		for(var i=1; i<=N_men; i++)
		{
			var dMen = document.getElementById('pun'+i);
			
			dMen.onmouseover = function () {
				if(uhodT[i-1]!==undefined)
				{
					clearInterval(uhodT[i-1]);
				}
				uhodT[i-1]=setInterval(vyhozhka, 20);
				alert('Вылез '+i+'-й рулон');
			}
		
			dMen.onmouseout = function () {
				if(uhodT[i-1]!==undefined)
				{
					clearInterval(uhodT);
				}
				uhodT[i-1]=setInterval(uhozhka, 20);
			}
		}
	}


uhodT[] - массив с таймерами. Инициализированный со значениями undefined. Кстати, работоспособно ли?
uhodT=[
		undefined,
		undefined,
		undefined,
		undefined,
		undefined
	];


Если навести на любой из элементов с id=pun1...pun2 всплывает непременно "Вылез 6-й рулон", при этом N_men=5. Т.е. локальная иттерационная переменная цикла в конце инкрементируется, достигая значения 6, но, не пройдя условие продолжения цикла, не исчезает, а остаётся на плаву и используется назначенными на обработку событий функциями, как глобальная. Ну и всё, конечно, работает не как надо Как ея победить?
Ответить с цитированием