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;
});
炮姐纯爷们
9 years, 11 months ago
Answers
-
顺序执行, 所以你能看到
alert(btn)
结果为true
这是无误的。 -
在你点击
.page2
后 btn已经被赋值false了 这个也是无误的,但是你的计时器已经开始执行了,他只会沿着function() { Push(num); }
的内容继续执行,你可能疑惑的是这个。接着看。 -
争取方法应该是使用函数
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>
我靠你谁啊
answered 9 years, 11 months ago