我已将全局变量声明为“ 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>