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

我已经尝试过这些,在html文件中我有按钮,按钮ID是“暂停”。

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

最佳答案

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



<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>

10-05 21:06
查看更多