我有一个全局变量,只有在用户输入某些输入时才设置为true,并且我希望能够触发一个函数。其中一些输入不是通过处理程序,所以我不能使用JQuery change()函数。
有关如何解决此问题的任何建议?
答案 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