有個(gè)小問(wèn)題,關(guān)于判斷條件的值
在觸發(fā)條件后改變這個(gè)條件的值使其不再符合觸發(fā)條件,可是仍會(huì)再次觸發(fā)
<body>
??? <button id="btn">點(diǎn)擊彈窗</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>
求教,明明點(diǎn)擊后n的值已變?yōu)閠rue,可再次點(diǎn)擊仍會(huì)觸發(fā),是怎么回事?
2017-05-11
不,前面想錯(cuò)了,首先判斷n值是在script加載時(shí)做的,加載script時(shí)給btn的onclik設(shè)置了function,在function中彈窗后將n值置為true,此時(shí)n值為true沒(méi)錯(cuò),但你第二次點(diǎn)擊的時(shí)候是不會(huì)判斷n值的,只是重復(fù)做{alert("1");n=true;},所以解決的辦法是在function里再次判斷n值。
2017-05-11
我想可能原因是執(zhí)行到console.log(n);這一步后整個(gè)腳本執(zhí)行完成,再點(diǎn)擊一次button相當(dāng)于重新執(zhí)行腳本