我有一個全局變量,只有當用戶輸入特定的輸入時纔會設置爲true,並且我希望能夠啓動一個函數。其中一些輸入不通過處理程序,所以我不能使用JQuery change()函數。當布爾變爲true時,如何獲得一個函數調用的集合?
有關如何解決此問題的任何建議?
我有一個全局變量,只有當用戶輸入特定的輸入時纔會設置爲true,並且我希望能夠啓動一個函數。其中一些輸入不通過處理程序,所以我不能使用JQuery change()函數。當布爾變爲true時,如何獲得一個函數調用的集合?
有關如何解決此問題的任何建議?
使用定製的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,並規定少PERF命中比Object.watch()和polyfills的。
「舊式IE」意味着版本8和9? – Bergi
您可以使用非標準的object.watch。這是一個實現:https://gist.github.com/eligrey/384583
更多情況下是必要的在這裏。目前爲止有什麼?你嘗試了什麼?爲什麼你沒有嘗試過的工作? –
除了使用間隔和重複檢查變量,或者做大多數人做的事情之外,沒有事件檢查變量是否發生變化,而不是在輸入發生變化時觸發該變量。 – adeneo