大神帮看看js代码 clearInterval为什么不管用
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><script>v...
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script> var val=0; var timeSpan; function getTime() { timeSpan = document.getElementById("timeSpan"); // time = document.getElementById("time"); var date = new Date(); timeSpan.innerHTML = date; } function showTime(){ val=setInterval(getTime,1000); } function stop() { clearInterval(val); timeSpan.innerHTML = ""; } </script></head><body><a href="#" onmousemove="showTime()" onmouseout="stop()" >查看当前系统时间:</a><span id="timeSpan"></span></body></html>
展开
1个回答
展开全部
原因:
onmousemove:只要移动就会触发,导致showTime多次执行,设定多个定时器,只有最后一个的Id被存在变量val中,其他的Id被覆盖了,但仍会执行,执行clear时只清除了最后设的那个定时器而已。
解决办法:
showTime里面要保证每次设置时之前的已经设过的定时器被清除掉:
function showTime(){
clearInterval(val);
val=setInterval(getTime,1000);
}
然后,按你的逻辑,你需要的其实是onmousein:进入元素内时才触发一次,避免多次触发事件
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询