3 回答

TA贡献1851条经验 获得超4个赞
啊啊,老兄,这种问题之前我也遇到过,很无措。
原因: clear 是个关键字,你试试改个名字,比如 clear1 就行了。
---补充
抱歉,回答的不太正确。
你可以这样试试(如下代码),它会打印出:ƒ clear() { [native code] }。
说明在事件处理的内部的作用域中有一个 clear 方法,它排的比较靠前,表现的就像一直会覆盖你定义的 clear 方法。
<button onclick="(function() { console.log(clear) })()">Click</button>

TA贡献1815条经验 获得超6个赞
可以在启动定时器的时候先清理下已有的timeout
```
function insert(){
if(settime) window.clearTimeout(settime);
settime=window.setTimeout(showalert,3000);
}
function clear(){
if(settime) {
window.clearTimeout(settime);
settime = null;
}
}
```
另外,clear为关键字,属于document对象的api,可以尝试如下代码:
```
<script>
document.clear = function(){
console.log("clear是关键字");
}
</script>
<a href="#" onclick="clear()">click me</a>
```
所以,还需要修改清除定时器的函数名。
添加回答
举报