0

ユーザーが特定の入力を入力したときにのみ true に設定されるグローバル変数があり、関数を起動できるようにしたいと考えています。これらの入力の一部はハンドラー経由ではないため、JQuery の change() 関数を使用できません。

この問題を回避する方法について何かアドバイスはありますか?

4

2 に答える 2

3

値が変更されたときにカスタムゲッターを使用して何か他のことを行います。

myGlobal=true;


(function(){
  var shadow=myGlobal;
Object.defineProperty(
   window, 
   "myGlobal", 
   {
     get: function() {return shadow;}, 
     set: function(v){alert( 'myGlobal is now ' + v); return shadow=v;}
   }
);

}());

myGlobal=false;
myGlobal=true;

これは古い IE で機能し、Object.watch() やポリフィルよりもパフォーマンス ヒットが少なくなります。

于 2013-05-30T01:19:40.537 に答える
0

非標準の object.watch を使用できます。これが実装です: https://gist.github.com/eligrey/384583

JavaScript または jQuery での変数の変更のリッスンを参照してください。

于 2013-05-30T01:22:54.147 に答える