Как установить обработчик в цикле?
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);
}
Народ, Код вот такой, обработчики не назначаются, как сделать правильно? Спасибо |
а что такое ImgArr? Вы определили этот массив(объект)?!
|
Да все переменные и массив определен выше)
Вообще по идее для каждого onload должен создаваться отдельный контекст? сейчас в цикле обработчики отказываються работать...( не сталкивался с таким еще.. |
ImgArr[i].style.opacity = '0.0';
ImgArr[i].onload = (function(ii) { return function () {count += ImgArr[ii].offsetWidth}; })(i); |
Проверьте есть ли v.length и какие src генеряцо?! Так вроде по синтаксису всё ок.
|
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);
|
Riim, если не сложно, объясните как передается переменная ii в функцию, или где об этом почитать можно)
|
|
ImgArr[i].onload = (function(ii) {
count += ImgArr[ii].offsetWidth; })(i); от так будет тоже раб) и в примере выше кудато значения первые терялись.. |
Цитата:
|
| Часовой пояс GMT +3, время: 21:58. |