我似乎无法将变量report1或report2变为全局范围,我知道这个问题看起来非常基本,但我似乎无法找到答案。
我必须在numClicks == 1
时定义变量report1,然后在numClicks == 2
时报告2。但是,只要numClicks发生变化,JavaScript就会忘记变量,这是可以理解的。但是,我似乎无法扩大变量的范围。我知道对于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
。
答案 0 :(得分:3)
每当您使用var
语法时,都要重新声明变量。
您需要在全局范围内定义函数之外的var report1; var report2;
;在你的函数中,只需做一个简单的赋值(即report2 = ...;
)
答案 1 :(得分:1)
使用“var”将使变量本地化为范围。通过消除该关键字,它将是全球性的。
(过度简化,但这是基本技巧。)
答案 2 :(得分:1)
要为变量赋予全局范围,只需省略“var”关键字:
report1 = '".$reports[$i]."';