在函数外部访问局部变量?

时间:2015-05-07 15:19:56

标签: javascript jquery

我从PHP文件中获取数据,例如,存储使用该数据的变量。它存储在两个函数中:

$("#image1").on("click",function(){

    $(".click").one("click",function(){

        $.getJSON("getnew.php",function(data){
        var img1 = data.img1;

然后我必须将它发布到另一个PHP文件,该文件只存储在第一个函数中。

$("#image1").on("click",function(){

// above stuff is first

    $.post("update.php",
        {img1link: img1}

但我无法访问img1变量,因为它在另一个函数中是本地的。

2 个答案:

答案 0 :(得分:0)

您只需从var声明中删除var img1 = data.img1;

如果使用var,变量将在本地范围内声明。如果你只是在没有var的情况下声明变量,它将在全局范围内声明

答案 1 :(得分:-1)

在任何编程语言中使用全局变量都不是一个好习惯。所以我建议你在进入ajax调用之前使用保存上下文。 喜欢 -

$("#image1").on("click",function(){

    $(".click").one("click",function(){

        $.getJSON("getnew.php",function(data){
        var img1 = data.img1;
        var self=this; // This is saving current context in self variable.
       $.post("update.php",
        {img1link: self.img1} //here you can access that variable using self.