setTimeout 跟addEventListener问题
hh
hh 2020-07-12 18:03:35
[JavaScript讨论组]

这是放在菜鸟上写的代码  ;

setTimeout 无论设置多长时间 ,innerHtml都是直接出现最终结果;

这是为啥呢

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>菜鸟教程(runoob.com)</title>

</head>

<body>

文档添加 onmousemove 事件句柄,当在文档中移动鼠标时会显示随机数。

点击按钮移除事件句柄。

<button id='demo1'>点我</button>

<p id="demo">

<script>

document.getElementById("demo1").addEventListener("click", myFunction);

var time = 5;

function myFunction() {

    document.getElementById("demo").innerHTML = time;

removeHandler(time);

}

function removeHandler(i) {

i--;

document.getElementById("demo").innerHTML = i;

setTimeout(removeHandler(i),1000);

}

</script>

</body>

</html>

hh
hh

全部回复(1)
天蓬老师

setTime()的回调函数是异步执行,只有主调用栈清空才会从任务队列进入调用栈,所以就会出现你说的这种情况

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号