代码及运行效果均可在jsbin中查看:
应该是mouseover判定多次,setInterval存在多个,clearInterval只清除了一个
content.addEventListener("mouseover",function(){
if(timer) return
...
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
5 回答2k 阅读
3 回答2.4k 阅读✓ 已解决
注意你是通过timer变量来保存定时器ID的,并且处在全局作用域中,每个定时器的id用的是同一个变量也就是timer储存的,理想的情况下,触发事件,timer保存ID,然后满足条件时读取timer清除对应的定时器。但是由于事件一下子被多次触发,第一次写入timer的ID早就被后面的写入覆盖掉了,当满足条件清除时通过timer已经找不到原来的定时器了。
简单改下就行了