2012-08-29 162 views
2

嗯,這應該是一個簡單的,但一直讓我頭痛兩天了。 我有以下幾點:即時更改javascript功能

<a href="javascript:void();" onclick="return manage(id, value)">Add or remove</a> 

的管理功能是遵循

function manage(id, param){ 
    var my_value; 
alert(my_value); // this keeps giving me undefined. I want it to hold the last value of the param 

    if(param!=0){ // value not empty, we are removing  
     my_value = remValue(id, param); 
    } 
    else if(param==''){ // value is empty, so we are adding 
     my_value = addValue(id, param); 
    } 
    alert(my_value);  
} 

function addValue(id, param){ 
    param += 1; 
    return param; 

} 

function remValue(id, param){ 
    param -= 1; 
    return param; 

} 

整體思路是參數的時價值分配添加或刪除操作後MY_VALUE。請幫忙嗎?

+0

您重新申報'my_value'每次'manage'函數被調用。看來你想要一個全局變量。 – Shmiddty

回答

4

通過在中定義var my_value;函數,您可以在每次函數調用時將變量重新聲明爲未定義的值。它只在本地進行,不會持續。

如果你需要保留的價值,你只需要在較高的範圍與var聲明一下:

// Declare outside the function... 
var my_value; 
function manage(id, param){ 
    alert(my_value); // Should be undefined on first call, 
        // or hold previous value on subsequent calls after assignment 

    if(param!=0){ // value not empty, we are removing  
     my_value = remValue(id, param); 
    } 
    else if(param==''){ // value is empty, so we are adding 
     my_value = addValue(id, param); 
    } 
    alert(my_value);  
} 
+0

我怎麼能錯過這個?這是有道理的。非常感謝。 – Lomse