开发者社区> 问答> 正文

JS里setInterval和clearInterval的小问题

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>

<body>
<div id="we" style="width:100px; height:100px; position:absolute; top:0; left:0; background:red;"></div>
<br/><br/><br/><br/><br/><br/><br/>
<input type="button" value="点击A" onclick="showA()"/>
<input type="button" value="点击B" onclick="showB()"/>
</body>
<script type="text/javascript">
    var a=0;
function move(){
    a=a+30;
    document.getElementById('we').style.left=a+'px';
    }
function showA(){
    timer=window.setInterval('move()',200);
    }   
function showB(){
    window.clearInterval(timer);
    }

</script>
</html>

timer=setInterva在showA()这个函数里,
window.clearInterval在showB这个函数里,
点击showA(),div盒子开始滑动,
为什么点击showB可以令showA里的timer停止?

展开
收起
小旋风柴进 2016-03-12 16:29:58 2108 0
1 条回答
写回答
取消 提交回答
  • 不用var申明的变量都是window作用域下的,所以你的showB可以引用到变量timer变量,如果是下面那样就没办法引用到了,只能在showA里面使用

     function showA(){
      var  timer=window.setInterval('move()',200);
        }
    2019-07-17 19:01:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript函数 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载