<!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停止?
不用var申明的變量都是window作用域下的,所以你的showB可以引用到變量timer變量,如果是下面那樣就沒辦法引用到了,只能在showA裡面使用
function showA(){
var timer=window.setInterval('move()',200);
}