clearTimeout的函数作用域问题
blw 2011-03-10 09:38:48 可能用过这个函数的兄弟们都知道,alertTimeout函数的执行结果是无限循环,事实上stop函数本身并没有问题,如果该语句在这个回调过程外被执行,即单击一下页面中的按钮,是可以停止的。我只想知道为什么,是不是clearTimeout在本身的回调事件队列中就不起作用
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>timeout</title>
<script type="text/javascript">
var iMove;
function alertTimeout() {
if (iMove) {
stop();
}
alert("something");
iMove = window.setTimeout(alertTimeout, 1000);
}
function stop() {clearTimeout(iMove); }
window.onload = function() {
alertTimeout();
}
</script>
</head>
<body>
<input type="button" onclick="stop();" />
</body>
</html>