首页 > ture和false的关系

ture和false的关系

我下面page2点击后btn应该是false啊,可为什么if括号里的btn还是true,怎么让他变成false

            var btn=true;

            if (btn) {
                alert(btn);
                var timer = setInterval(function() {
                    Push(num);
                }, 500);

            }

            $(".page2").click(function(){
                btn=false;
            });

if括号里的btn在你执行click事件之前已经写死了啊, alert的时候肯定为true


能不能把代码贴全?


.page2 里面的callback在你点击的时候才会执行吧,之前alert的时候当然是true啦


  1. 顺序执行, 所以你能看到alert(btn)结果为true 这是无误的。
  2. 在你点击.page2后 btn已经被赋值false了 这个也是无误的,但是你的计时器已经开始执行了,他只会沿着function() { Push(num); }的内容继续执行,你可能疑惑的是这个。接着看。
  3. 争取方法应该是使用函数clearInterval来停止这个timer
<!DOCTYPE html>
<html>
<head>
    <title>1010000002595041</title>
    <script type="text/javascript" src="https://code.jquery.com/jquery-latest.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){ 
        var btn=true;
        if (btn) {
            alert(btn);
            var num = 0;
            var timer = setInterval(function() {
                console.log(num++);
            }, 500);
        }
        $(".page2").click(function(){
            btn=false;
            console.log("clicked");
            alert(btn);
            clearInterval(timer);
            console.log("timer stop");
        });
    }); 
    </script>
</head>
<body>
<button class="page2">click</button>
</body>
</html>

【热门文章】
【热门文章】