2013-10-07 122 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

相关问题