使用jQuery重置每个文档单击的超时

时间:2019-05-24 16:40:23

标签: jquery settimeout

我正在努力让timeout计时器在每次document click互动时重置。 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);
});

1 个答案:

答案 0 :(得分:4)

将您的代码重构为如下形式:

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>