10

重複の可能性:
JavaScript または jQuery で変数の変更をリッスンする

この変数が変更されたかどうかを追跡するにはどうすればよいですか?

var ConditionalFlag = 0;

私はこれを試しました:

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

しかし、役に立たない。次のような変更を確認するために 25 ミリ秒のタイマーを使用することを検討しました。

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 に答える