10

可能重复:
监听 JavaScript 或 jQuery 中的变量变化

如何跟踪此变量是否已更改?

var ConditionalFlag = 0;

我试过这个:

var ConditionalFlag = 0;
$(ConditionalFlag).change(function () {
    alert("Changed");
});
ConditionalFlag++;

但无济于事。我考虑过使用 25ms 计时器来检查这样的变化:

var ConditionalFlag = 0;
function CheckFlag() {
    if (ConditionalFlag > 0) {
        alert("Changed");
        clearInterval(check);
    }
}
var check = window.setInterval("CheckFlag()", 25);
ConditionalFlag++;

然而,这似乎有些矫枉过正。有没有办法使用 jQuery 或 javascript 将事件处理程序附加到此变量?

4

2 回答 2

10

如果它是全局变量,则可以在受支持的环境中使用属性访问器...

window._conditional_flag = 0;
Object.defineProperty(window, "ConditionalFlag", {
    get: function() { return window._conditional_flag},
    set: function(v) { console.log("changed"); window._conditional_flag = v; }
});
于 2012-07-30T21:15:32.727 回答
5

变量更改时不会触发“事件”。JavaScript 不能那样工作。

这个变量什么时候改变?只需在完成后添加对函数的调用即可。

于 2012-07-30T21:09:54.753 回答