为了账号安全,请及时绑定邮箱和手机立即绑定

JS里关于setTimeout函数的中断问题?

JS里关于setTimeout函数的中断问题?

Git
跃然一笑 2019-02-13 15:11:32
setTimeout(function(){location.reload();},1000),可否在执行计时过程中设置个按键让它停止执行下去?能写出详细的代码吗?我要的是以按键的形式让其结束
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

解决方法捕获按键的事件。
<script language="javascript">
function test(event) {
event = event || window.event;
if(event.keyCode==13) { alert("你按了回车") }
if(event.shiftKey==true) { alert("你按了shift") }
if(event.ctrlKey==true) { alert("你按了ctrl") }
if(event.altKey==true) { alert("你按了alt") }} </script>

每个按键都对应一个ASCII码 比如回车的ASCII码是13 每个按键的ASCII码你可以在百度上查。

setTimeout() 方法的返回值是一个唯一的数值,如果你想要终止 setTimeout() 方法的执行,那就必须使用 clearTimeout() 方法来终止,而使用这个方法的时候,系统必须知道你到底要终止的是哪一个 setTimeout() 方法 (因为你可能同时调用了好几个 setTimeout() 方法),这样 clearTimeout() 方法就需要一个参数,这个参数就是 setTimeout() 方法的返回值 (数值),用这个数值来唯一确定结束哪一个 setTimeout() 方法

你的setTimeout(function(){location.reload();},1000)会返回一个值。
比如你要用回车结束setTimeout js代码如下。
function test(event,id) {
event = event || window.event;
if(event.keyCode==13) {
clearTimeout(id);
}
}
这里的ID 就是你 setTimeout方法的返回值。了解了吗?



查看完整回答
反对 回复 2019-03-14
?
湖上湖

TA贡献2003条经验 获得超2个赞

imeout(function(){location.reload();},1000) 你的这个里面可以添加一个id参数.比如这样
imeout(function(id){location.reload();},1000).
然后,你只要clearTimeout(id)就可以中断对应Id的计时器了..
至于你说的按键形式的,不用我多说了吧

查看完整回答
反对 回复 2019-03-14
?
喵喔喔

TA贡献1735条经验 获得超5个赞

在按钮中写个单击事件。用 function stops(t)
clearTimeout(t);
看看是否可行。做个传叁的判断

定时器清除clearTimeout(setTimeout(function(){location.reload();},1000))

查看完整回答
反对 回复 2019-03-14
  • 3 回答
  • 0 关注
  • 1167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信