问答详情
源自:1-8 JavaScript-判断语句(if...else)

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

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

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

提问者:苏子晨 2017-05-11 21:19

个回答

  • 慕莱坞4735686
    2017-05-11 22:34:16
    已采纳

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

    http://img.mukewang.com/5914763e00011a4403970223.jpg

  • 慕莱坞4735686
    2017-05-11 21:40:04

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