Я бы порекомендовал оболочку, которая будет обрабатывать изменяемые значения.Например, у вас может быть функция JavaScript, например:
function Variable(initVal, onChange)
{
this.val = initVal; //Value to be stored in this object
this.onChange = onChange; //OnChange handler
//This method returns stored value
this.GetValue = function()
{
return this.val;
}
//This method changes the value and calls the given handler
this.SetValue = function(value)
{
this.val = value;
this.onChange();
}
}
И затем вы можете сделать из нее объект, который будет содержать значение, которое вы хотите отслеживать, а также функцию, которая будет вызываться призначение меняется.Например, если вы хотите получать уведомления при изменении значения, а начальное значение равно 10, вы должны написать код, подобный следующему:
var myVar = new Variable(10, function(){alert("Value changed!");});
Будет вызван обработчик function(){alert("Value changed!");}
(если вы посмотрите на код) когда вызывается SetValue()
.
Вы можете получить значение следующим образом:
alert(myVar.GetValue());
Вы можете установить значение следующим образом:
myVar.SetValue(12);
И сразу послена экране появится предупреждение.Посмотрите, как это работает: http://jsfiddle.net/cDJsB/