Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.09.2009, 16:35
voidd
 
Сообщений: n/a

Как установить обработчик в цикле?
for(var i = 0; i < v.length; i++) {	
ImgArr[i] = new Image();
ImgArr[i].src = v.charAt(i)+'.png';				
ImgArr[i].style.opacity = 0;				
ImgArr[i].onload = function () {count += ImgArr[i].offsetWidth;};
Wrap.insertBefore(vImgArr[i], null);
}


Народ, Код вот такой, обработчики не назначаются, как сделать правильно? Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 11.09.2009, 16:39
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

а что такое ImgArr? Вы определили этот массив(объект)?!
Ответить с цитированием
  #3 (permalink)  
Старый 11.09.2009, 16:41
voidd
 
Сообщений: n/a

Да все переменные и массив определен выше)

Вообще по идее для каждого onload должен создаваться отдельный контекст? сейчас в цикле обработчики отказываються работать...( не сталкивался с таким еще..

Последний раз редактировалось Octane, 11.09.2009 в 16:58. Причина: объединение сообщений
Ответить с цитированием
  #4 (permalink)  
Старый 11.09.2009, 16:44
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

ImgArr[i].style.opacity = '0.0';
ImgArr[i].onload = (function(ii) {
return function () {count += ImgArr[ii].offsetWidth};
})(i);
Ответить с цитированием
  #5 (permalink)  
Старый 11.09.2009, 16:45
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Проверьте есть ли v.length и какие src генеряцо?! Так вроде по синтаксису всё ок.
Ответить с цитированием
  #6 (permalink)  
Старый 11.09.2009, 16:51
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

onload добавляйте до src
var img = document.createElement("img");
img.onload = function() {
    alert("Image");
};
img.src = "http://javascript.ru/forum/images/ca_serenity/misc/logo.gif";
document.body.insertBefore(img, document.body.firstChild);
Ответить с цитированием
  #7 (permalink)  
Старый 11.09.2009, 16:55
voidd
 
Сообщений: n/a

Riim, если не сложно, объясните как передается переменная ii в функцию, или где об этом почитать можно)
Ответить с цитированием
  #8 (permalink)  
Старый 11.09.2009, 16:58
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

http://javascript.ru/basic/closure#p...-ispolzovaniya
Ответить с цитированием
  #9 (permalink)  
Старый 11.09.2009, 17:21
voidd
 
Сообщений: n/a

ImgArr[i].onload = (function(ii) {
count += ImgArr[ii].offsetWidth;
})(i);
от так будет тоже раб) и в примере выше кудато значения первые терялись..
Ответить с цитированием
  #10 (permalink)  
Старый 11.09.2009, 17:24
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от voidd
ImgArr[i].onload = (function(ii) {
count += ImgArr[ii].offsetWidth;
})(i);
от так будет тоже раб) и в примере выше кудато значения первые терялись..
Функция возвращает undefined, т. е. обработчик обнуляется.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
как правильно установить обработчик? Yurik Events/DOM/Window 1 20.06.2009 02:00
Как скрыть обработчик HTML-формы с помошью JavaScript? Мишаня Общие вопросы Javascript 5 15.06.2009 05:40
Обработчик события: как делает jquery? Shasoft jQuery 35 22.04.2009 09:41
как правильно установить обработчик onclick? Yurik AJAX и COMET 6 14.04.2009 21:04