Показать сообщение отдельно
  #3 (permalink)  
Старый 14.06.2016, 11:05
Аватар для pureJS
Аспирант
Отправить личное сообщение для pureJS Посмотреть профиль Найти все сообщения от pureJS
 
Регистрация: 04.06.2016
Сообщений: 70

Сообщение от pomidor_makaronus Посмотреть сообщение
т.е.
bod[i].addEventListener("mouseover", function() {
		bod[i].className = "maxi";
	}, false );
не работает .

pomidor_makaronus, когда ты присваиваешь обработчику "mouseover", то событие происходит не при присваивании, а позже и поэтому функция не знает ни объект "bod" ни переменную "i". Они лежат вне области видимости этой функции. При срабатывании события обработчик ссылается на объект, на котором он сработал и поэтому тут именно this надо применять.

Вот, в учебнике, всё подробно об этом:
Замыкания, область видимости
Ответить с цитированием