javascript - 关于setTimeout

查看:88
本文介绍了javascript - 关于setTimeout的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

有一个按钮,按了之后会显示另外一个元素,然后setTimeout来自动隐藏这个元素。隐藏的时候用到动画所以setTimeout来设置display:none。这个时候如果在元素还没隐藏的时候再点按钮让元素显示就会出bug。
应该怎么来写才对?

解决方案

你说的是这样?

html

<div id="show" style="display:none;">哦</div>
<button id="btn">点我啊</button>

js

var timeoutHandler = null;
document.getElementById('btn').onclick = function(){
     var show = document.getElementById('show');
     if(timeoutHandler){
         clearTimeout(timeoutHandler);
     }
     show.style.display = 'block';
     timeoutHandler = setTimeout(function(){
         show.style.display = 'none';
     },5000);
};

这篇关于javascript - 关于setTimeout的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆