ユーザーが特定の入力を入力したときにのみ true に設定されるグローバル変数があり、関数を起動できるようにしたいと考えています。これらの入力の一部はハンドラー経由ではないため、JQuery の change() 関数を使用できません。
この問題を回避する方法について何かアドバイスはありますか?
ユーザーが特定の入力を入力したときにのみ true に設定されるグローバル変数があり、関数を起動できるようにしたいと考えています。これらの入力の一部はハンドラー経由ではないため、JQuery の change() 関数を使用できません。
この問題を回避する方法について何かアドバイスはありますか?
値が変更されたときにカスタムゲッターを使用して何か他のことを行います。
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() やポリフィルよりもパフォーマンス ヒットが少なくなります。
非標準の object.watch を使用できます。これが実装です: https://gist.github.com/eligrey/384583
JavaScript または jQuery での変数の変更のリッスンを参照してください。