Как установить обработчик в цикле?
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, время: 22:17. |