当bool变为true时,如何设置函数调用?

时间:2013-05-30 01:15:21

标签: javascript jquery

我有一个全局变量,只有在用户输入某些输入时才设置为true,并且我希望能够触发一个函数。其中一些输入不是通过处理程序,所以我不能使用JQuery change()函数。

有关如何解决此问题的任何建议?

2 个答案:

答案 0 :(得分:3)

使用自定义getter在值更改时执行其他操作:

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()和polyfill强制执行更少的性能。

答案 1 :(得分:0)

您可以使用非标准的object.watch。这是一个实现:https://gist.github.com/eligrey/384583

请参阅Listening for variable changes in JavaScript or jQuery