Помогите с замыканиями
Здравствуйте. проблема такова: нужно для каждой линии в массиве задать свой setInterval со своим интервалом. Пытаю в цикле сделать это при помощи замыканий, однако функции отрабатывают только 1 раз после отрисовки страницы :c. Укажите на ошибки плз
вызов setinterval в цикле setInterval(function(x){ repaint(x); }(i), function(x){return x}(lines[i].updateTime)); полный проект http://jsfiddle.net/jsuLgpeg/ |
почитайте про метод bind который есть у функции
function start(name) { console.log(name); } var ar = { one: 1000, two: 800, three: 2100}; for(prop in ar) setInterval(start.bind(null, prop), ar[prop]); |
Цитата:
function start(name) { console.log(name); } var ar = { one: 1000, two: 800, three: 2100}; for(prop in ar) setInterval((function (p) { return function () { start(p); }; })(prop), ar[prop]); |
|
Премного благодарен.
|
Ты перестраиваешь разметку и перерисовываешь страницу по таймеру еще и над массивом объектов так делать не стоит
это не так страшно если интервалы на изменения стоят минуты но меньше 100 это уже очень плохо |
Часовой пояс GMT +3, время: 17:04. |