开发者社区> 问答> 正文

关于setTimeout

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

展开
收起
杨冬芳 2016-06-22 16:15:01 1810 0
1 条回答
写回答
取消 提交回答
  • IT从业

    你说的是这样?

    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);
    };
    
    2019-07-17 19:45:45
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载