使用定时器时,有两个按钮,一个是设置定时器,一个是清除定时器,但是clearTimeout并没有起作用,控制台上还是输出,请问是为什么,哪里出错了?
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
var settime=null;
function insert(){
settime=window.setTimeout(showalert,3000);
}
function showalert(){
console.log("这是显示语句");
}
function clear(){
window.clearTimeout(settime);
}
</script>
</head>
<body>
<div id="a">
<h3>setTimeout</h3>
<button onclick="insert()">显示语句</button>
<button onclick="clear()">取消显示</button>
</div>
</body>
</html>
啊啊,老兄,这种问题之前我也遇到过,很无措。
原因: clear 是个关键字,你试试改个名字,比如 clear1 就行了。
---补充
抱歉,回答的不太正确。
你可以这样试试(如下代码),它会打印出:ƒ clear() { [native code] }。
说明在事件处理的内部的作用域中有一个 clear 方法,它排的比较靠前,表现的就像一直会覆盖你定义的 clear 方法。