2013-10-07 180 views
3

這是我的簡單場景。我在ready()函數中定義了一個變量,它指定了第一個值。更改函數內部的全局變量值

我也有一個函數ready()以外。我想要做的是在新函數中使用更改後的變量。

這裏是我的JavaScript代碼:

var myFunction = function() { 
    // I wanna change Vp value here and wanna 
    // use this function with the new value   
    Vp = "new value"; 

    myFunction2(); 
}; 

$(document).ready(function() { 

    var Vp = "first value asign"; 
    $('#btnAddCustomer').click(myFunction); 

    var myFunction2 = function() { 
     // I will use Vp variable here with new value 
    }; 
}); 
+0

[JSFiddled(http://jsfiddle.net/XGGvv/2) –

+0

你爲什麼不動'myFunction的()'中的一樣'準備範圍? –

+0

$('#btnAddCustomer')。click(myFunction);這裏叫做。每當clint點擊它觸發的按鈕時 – sakir

回答

8

丟棄var聲明。它將該值賦給一個新的局部變量,而不是全局變量。

這裏:

var Vp = "first assigned value" 
var myFunction2; 

var myFunction = function() { 
    // I wanna change Vp value here and wanna use this function with the new value   

    Vp = "new value" 
    myFunction2(); 

    }; 

$(document).ready(function() { 

    Vp = "first value asign"; 

    $('#btnAddCustomer').click(myFunction); 

    myFunction2 = function() { 

    alert(Vp) 

    }; 

}); 

小提琴:http://jsfiddle.net/XGGvv/10/

NOW工程。

對JS變量的作用域一個很好的閱讀:http://coding.smashingmagazine.com/2009/08/01/what-you-need-to-know-about-javascript-scope/

+3

你應該仍然聲明變量,但在全局範圍內。 – JJJ

+0

對不起,它不完整。現在檢查。 – aIKid

+0

不要讓你的孤子工作,stilll得到Vp =「第一個值asign」值在ready函數中,但需要新值 – sakir

相關問題