javascript - 定时器时间清零!!
PHPz
PHPz 2017-04-10 17:36:05
[JavaScript讨论组]

我想在屏幕滚动的时候把_time设为零,就是立马让phide(),而不是关闭定时器
这样能做吗?

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title></title>
<script src="http://code.jquery.com/jquery-2.1.3.min.js"></script>
</head>
<body>
      <input type="button" value="点击" class="show"/>  
    <p class="dis">hello</p>  
    <script>  
     $(function(){
           var _time = 3000;
              $('.show').click(function(){
                  timer3 = setTimeout(function(){
                            $(".dis").hide();                    
                    },_time);    
              })
              
              window.scroll(function(){
                                          
              })
     })
            
    </script>  
</body>
</html>
PHPz
PHPz

学习是最好的投资!

全部回复(5)
PHPz

直接在屏幕滚动的时候,将p hide()不就行了吗,一定要用定时器兜个圈子吗?

PHP中文网

哪位给编辑过了

$(function() {
    var _time = 3000;
    $('.show').click(function() {
        timer3 = setTimeout(hide, _time);
    })
    window.onscroll = hide;

    function hide() {
        $(".dis").hide();
    }
})
黄舟

如果你的timer3已经在执行了,你在设置_time为0,应该是不行的。
为什么不直接在滚动时直接设置$(".dis").hide();了?

大家讲道理

clear掉定时器就行了,然后$(".dis").hide();

$(function(){
   var _time = 3000;
    var timer3 = null;
      $('.show').click(function(){
          timer3 = setTimeout(function(){
                    $(".dis").hide();                    
            },_time);    
      })
      
      window.scroll(function(){
            clearTimeout(timer3);  
            $(".dis").hide();                  
      })
 })
PHP中文网

不行,你调用一次的setTimeout函数就是往JS的定时器执行队列中注册了一个定时器,除非调用clearTimeout函数,否则你是清除不掉定时器的~~

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

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