开发者社区 问答 正文

关于setTimeout

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

展开
收起
杨冬芳 2016-06-22 16:15:01 1830 分享 版权
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
    赞同 展开评论
问答地址: