我似乎无法使变量report1或report2具有全局作用域,我知道这个问题似乎很基本,但是我似乎找不到答案。

我必须在numClicks == 1时定义变量report1,然后在numClicks == 2时定义report2。但是JavaScript会在numClicks更改后立即忘记变量,这是可以理解的。但是,我似乎无法扩大变量的范围。我知道对于PHP,您可以执行return $variable之类的操作来使其成为全局文件,但是JavaScript中实际上没有任何作用。

              <?
                "<img  height =\"16\"  src = \"images/stapler.png\"
                onclick=\"

                    numClicks++;
                if(numClicks == 1){
                    var report1 = '".$reports[$i]."';
                }
                if(numClicks == 2){
                    var report2 = '".$reports[$i]."';
                }
                return confirm(report1);

                \">\n";?>


执行脚本后,在第三次单击时将返回undefined

最佳答案

每当使用var语法时,就在重新声明该变量。

您需要在全局范围内的函数之外定义var report1; var report2;;在您的函数中,只需执行简单的分配(即report2 = ...;

09-08 08:51