使用jquery重置每次文档点击的超时时间

fjaof16o  于 2023-06-22  发布在  jQuery
关注(0)|答案(1)|浏览(112)

我正在努力让timeout计时器在每次documentclick交互时重置。clearTimeout似乎不工作。
jquery:

$(document).click(function(e){
  $("#vidBack").hide();
  $(".mainer").show();

  function stopTimer() {
    clearTimeout(timer);
  }

  var timer =  setTimeout(function(){
        $(".bury").hide();
        $(".mainer").hide();
        $("#meetSub").hide();
        $("#leaguesSub").hide();
        $("#memberSub").hide();
        $(".bury").hide();
        $("#welcomeSub").show();
        $("#vidBack").show();
        $("#vida").prop("volume", 0);       
  }, 10000);
});
bbmckpt7

bbmckpt71#

将你的代码重构成这样:

var timer;

function resetTimer() {
  if(timer)
    clearTimeout(timer);
  
  $("#vidBack").hide();
  $(".mainer").show();
  
  timer = setTimeout(function() {
    $(".mainer").hide();
    $("#vidBack").show();
  },  5000);
  
}

$(document).click(resetTimer);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="mainer">mainer</div>
<div id="vidBack">vidBack</div>

相关问题