有一个按钮,按了之后会显示另外一个元素,然后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);
};
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。