2014-02-26 64 views
2

可以說我有一個變量,如下所示:我可以舉辦我自己的活動嗎?

var i=0; 

如果任何一個改變的i的價值,我需要運行一些功能類似如下

function event_iChanged(){ 
    alert("I Changed"); 
} 

我怎麼能做到這一點在JQuery中或Javascript?

+3

檢查了這一點,可能會有所幫助:http://stackoverflow.com/questions/3267741/jquery-trigger-on-variable-change – martynas

+0

JQuery觸發事件是相當可觀的! – Cataclysm

+0

你是否在尋找一種方法來觀察變量值... –

回答

-1

您可以將監聽器添加到您的文檔

$(document).on("myEvent", event_iChanged); 

,只要你改變你的變量的值,只需調用

$.event.trigger({ 
    type: "myEvent", 
    message: "i changed!", 
    time: new Date() 
}); 
-1

解決方案 - mutator方法

也許你應該考慮使用這樣的mutator method(getter/setter):

function SetValue(reference, newvalue) { 
    console.log("Old value: " + reference); 
    console.log("New value: " + newvalue); 
    reference = newvalue; 
} 

mutator方法在非面向對象的環境中:

到要修改傳遞到突變,用新的值沿變量的引用。在這種情況下,編譯器不能限制代碼繞過mutator方法並直接更改變量。這個責任落在了開發者身上,以確保變量只能通過mutator方法修改,而不能直接修改。

這意味着你應該這樣使用它。

var i = 0; 
SetValue(i, 10); 
+0

這個答案爲什麼downvoted?如果有人能給我一個更清潔的解決方案,請告訴我。 – WoIIe

+0

同樣適用於我..我無法理解爲什麼downvote .. b –

-2

解決方案可能是使用觀察者模式,看看here

否則,而不是創建wacther或使用不同的插件,你可以考慮創建一個設定值與x的函數,在添加,調用另一個函數:代替

x = 3; 

你將有:

set(x,3); 

其中:

var set = function(v, value) { 
    v = value; 
    callback(v); 
} 

DEMO here。

相關問題