我下面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; });
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
alert(btn)
true
.page2
function() { Push(num); }
clearInterval
<!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>
if括号里的btn在你执行click事件之前已经写死了啊, alert的时候肯定为true吧
if
click
alert
.page2 里面的callback在你点击的时候才会执行吧,之前alert的时候当然是true啦
能不能把代码贴全?
alert(btn)
结果为true
这是无误的。.page2
后 btn已经被赋值false了 这个也是无误的,但是你的计时器已经开始执行了,他只会沿着function() { Push(num); }
的内容继续执行,你可能疑惑的是这个。接着看。clearInterval
来停止这个timerif
括号里的btn在你执行click
事件之前已经写死了啊,alert
的时候肯定为true
吧.page2
里面的callback在你点击的时候才会执行吧,之前alert的时候当然是true啦能不能把代码贴全?