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