Здравствуй, Тостер!
Есть список форм, в которых нужно отслеживать изменения и выполнять какое-то действие для каждой формы не чаще 2 секунд.
Как думал решить задачу: создать хеш, ключами которого являются указатели на форму, а значения - объекты, в которых проводится проверка на запущенный таймер и необходимое действие по его истечению.
Написал код, но что-то не реагирует.
$(".editable").on('input keyup', function(e){
link_to_obj = this
if (!articles.hasOwnProperty(this)){
articles[this] = {
obj: $(link_to_obj),
has_changes: false,
timer_started: false,
save_changes: function(){
alert(this.obj.text())
},
start_timer: function(){
setTimeout(this.check_changes(), 2000);
},
check_changes: function(){
this.timer_started = false;
this.check_update();
},
check_update: function(){
if (!this.timer_started && this.has_changes){
this.save_changes();
this.has_changes = false;
this.start_timer();
this.timer_started = true;
}else if(this.timer_started){
this.has_changes = true;
}
},
update: function(){
this.has_changes = true;
this.check_update();
}
}
}
articles[this].update()
});
var articles = []