在触发条件后改变这个条件的值使其不再符合触发条件,可是仍会再次触发
<body>
<button id="btn">点击弹窗</button>
<script type="text/javascript">
var btn=document.getElementById("btn")//获取按钮
var n=false;
if(!n){
btn.onclick=function(){
alert("1");
n=true;
console.log(n);
}
}
</script>
</body>
求教,明明点击后n的值已变为true,可再次点击仍会触发,是怎么回事?
不,前面想错了,首先判断n值是在script加载时做的,加载script时给btn的onclik设置了function,在function中弹窗后将n值置为true,此时n值为true没错,但你第二次点击的时候是不会判断n值的,只是重复做{alert("1");n=true;},所以解决的办法是在function里再次判断n值。
我想可能原因是执行到console.log(n);这一步后整个脚本执行完成,再点击一次button相当于重新执行脚本