为了账号安全,请及时绑定邮箱和手机立即绑定

有个小问题,关于判断条件的值

在触发条件后改变这个条件的值使其不再符合触发条件,可是仍会再次触发

<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,可再次点击仍会触发,是怎么回事?

正在回答

2 回答

不,前面想错了,首先判断n值是在script加载时做的,加载script时给btn的onclik设置了function,在function中弹窗后将n值置为true,此时n值为true没错,但你第二次点击的时候是不会判断n值的,只是重复做{alert("1");n=true;},所以解决的办法是在function里再次判断n值。

http://img1.sycdn.imooc.com//5914763e00011a4403970223.jpg

1 回复 有任何疑惑可以回复我~
#1

慕莱坞4735686

图里function里面的if下少了n=true;
2017-05-11 回复 有任何疑惑可以回复我~
#2

苏子晨 提问者

非常感谢!这样的话外层的判断条件可以删掉
2017-05-12 回复 有任何疑惑可以回复我~
#3

苏子晨 提问者 回复 苏子晨 提问者

直接点击后判断
2017-05-12 回复 有任何疑惑可以回复我~

我想可能原因是执行到console.log(n);这一步后整个脚本执行完成,再点击一次button相当于重新执行脚本

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

有个小问题,关于判断条件的值

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信