Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.09.2015, 11:34
Интересующийся
Отправить личное сообщение для Alpunto Посмотреть профиль Найти все сообщения от Alpunto
 
Регистрация: 22.09.2015
Сообщений: 12

Проблема с видимостью переменной
Пытаюсь создать несколько Event Listenerв цикле:

var cssArr = ["f1", "f2", "f3"];

for (var i = 0; i < cssArr.length; i++){
    var cssCur = cssArr[i];
    var cb = function(){ 
        console.log(cssCur);
    }   
    window.addEventListener('load', cb);
}


На выходе хочу получить три Event Listener с тремя различными значениями, но у меня на выходе в консоли всегда три строки "f3".

Пробовал делать разными способами, пробовал делать через замыкание, но не получается. Я так понимаю, здесь проблема с областью видимости или я чего-то недопонимаю. Подскажите, в чем именно здесь проблема?
Ответить с цитированием
  #2 (permalink)  
Старый 22.09.2015, 11:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Alpunto,
Пример ошибочного использования
Ответить с цитированием
  #3 (permalink)  
Старый 23.09.2015, 06:50
Интересующийся
Отправить личное сообщение для Alpunto Посмотреть профиль Найти все сообщения от Alpunto
 
Регистрация: 22.09.2015
Сообщений: 12

Спасибо. Также нашел ответ в книге "Подробное руководство".

Это рабочий код:

var cssArr = ["f1", "f2", "f3"];

for (var i = 0; i < cssArr.length; i++){
    var cb = createListeners(cssArr[i]);
    window.addEventListener('load', cb);
}

function createListeners (cssCur){
	return function (){
		console.log(cssCur);
	};
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с доступом к переменной SergioPerm Общие вопросы Javascript 4 17.09.2015 08:34
Проблема с видимостью перменной freelancer.rnd AJAX и COMET 16 16.08.2015 17:35
Проблема с видимостью $(this) chiffenok Общие вопросы Javascript 2 12.08.2013 16:21
Ajax-запрос к базе - проблема с передачей переменной wfire AJAX и COMET 2 29.01.2012 04:29
RegExp и search. Проблема с переменной в выражении Arconas Общие вопросы Javascript 2 21.05.2010 15:45