Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问函数外部的局部变量?_Javascript_Jquery - Fatal编程技术网

Javascript 访问函数外部的局部变量?

Javascript 访问函数外部的局部变量?,javascript,jquery,Javascript,Jquery,我从一个PHP文件中获取数据,例如,存储一个使用该数据的变量。它存储在两个函数中: $("#image1").on("click",function(){ $(".click").one("click",function(){ $.getJSON("getnew.php",function(data){ var img1 = data.img1; 然后我必须将其发布到另一个PHP文件中,该文件仅存储在第一个函数中 $("#image1").on("c

我从一个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变量,因为它在其他函数中是本地的。

您所要做的就是从
var img1=data.img1中删除
var
声明

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

// above stuff is first

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

如果使用
var
,变量将在本地范围内声明。如果您只声明变量而不使用
var
,它将在全局范围内声明

您所要做的就是从
var img1=data.img1中删除
var
声明


如果使用
var
,变量将在本地范围内声明。如果只声明变量而不使用
var
,那么它将在全局范围内声明

在任何编程语言中使用全局变量都不是一种好的做法。因此,我建议您在进入ajax调用之前使用保存上下文。 像-


在任何编程语言中使用全局变量都不是一个好的做法。因此,我建议您在进入ajax调用之前使用保存上下文。 像-


所以声明它,使它在两个函数的作用域中。只需确保在它被设置在内部作用域之前,不要尝试在外部作用域中使用它。我认为它与作用域无关,更重要的是异步Javascript和XML。。。异步?所以声明它,使它在两个函数的作用域中。只需确保在它被设置在内部作用域之前,不要尝试在外部作用域中使用它。我认为它与作用域无关,更重要的是异步Javascript和XML。。。嗯,异步?虽然这可能会起作用,但污染全局范围并不是最好的主意。虽然这可能会起作用,但污染全局范围并不是最好的主意。
this
与变量范围无关。
this
与变量范围无关。