2010-07-16 3 views
4

У меня есть настройка, в которой я загружаю много модулей по мере необходимости, каждый модуль имеет определенную нагрузку при изменении конкретной переменной. Мне нужно что-то вроде триггера jquery, но это работает, когда переменная изменяется, примерно так:jQuery trigger on change change

var x = 0; // no triggers 

// something happens 

x = 1; // will trigger a function 
x = 2; // will trigger the same function 

Спасибо.

+0

Вы можете сделать именно это ... нет ничего, что вы можете слушать, вы можете дать немного больше контекста? –

+0

Дубликат этого: http://stackoverflow.com/questions/1759987/detect-variable-change-in-javascript –

+0

Это дубликат, который я закрываю, thx. – Rodrigo

ответ

4

Возможно, вы можете создать объект, который содержит метод set_x, чтобы изменить значение переменной. В дополнение к изменению переменной этот метод может вызывать любые связанные триггеры.

Тогда вместо установки x непосредственно, вы должны использовать этот новый метод:

my_obj.set_x(2); // Will trigger a function 
3

Как насчет этого?

var x = { 
    value: 10 
} 

var set = function(obj, new_value) { 
    obj.value = new_value; 
    /* call whatever your heart desires here */ 
} 

Так что вы можете сделать:

set(x, 2); 
// now x.value = 2