Помогите с замыканиями
Здравствуйте. проблема такова: нужно для каждой линии в массиве задать свой 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, время: 06:53. |