如何在使用javascript完成函数后获取全局变量值

时间:2016-08-10 14:25:07

标签: javascript onclick

我已将全局变量声明为“idle”(var a =“idle”)。我还定义了一个按钮单击处理程序。在该函数内部,我将全局变量值更改为a =“pause”。在该功能完成后,我想获得当前的全局值。我怎么能得到它。

我试过这样的,在html文件中我有按钮,按钮id是“暂停”。

<script>
var a="idle";
pause.onclick = function(){a = "pause"; }
console.log(a);
if(a=="pause")
alert("mani");
</script>

1 个答案:

答案 0 :(得分:0)

您的代码在单击按钮之前运行到结尾,这意味着仍然是a != "pause"。最简单的方法是在按钮的onclick内添加警报。请注意,您还可以在onclick回调中运行警报以外的任何代码。

<html>
<button id="pause">Pause</button>
<script>
var a="idle";
document.getElementById("pause").onclick = function(){
  a = "pause";
  alert("mani");
  afterwards();
};
function afterwards() {
  //code goes here, e.g.
  console.log("Afterwards: " + a);
}
console.log("Immediately: " + a);
</script>
</html>

替代方案是你自己的类似消息泵的代码,除非你有充分的理由否则我不建议:

<html>
<button id="pause">Pause</button>
<script>
var a="idle";
var alerted = false;
document.getElementById("pause").onclick = function(){ a = "pause"; }
console.log(a);
setInterval(() => { if (a == "pause" && !alerted) { alert("mani"); alerted = true; }}, 100);
</script>
</html>