2016-11-09 2 views
0

ユーザーが入力中または画面をクリックしている間にタイマーをリセットします。 私のコードはありますが、タイマーはリセットされません。 問題はどこにあり、どのように解決すればよいのか教えていただけますか?ユーザーが入力中または画面をクリック中にタイマーをリセットする

$(document).ready(function() { 
    $(".data-lock").click(function() { 
     $(this).animate({ 
      bottom: '100%' 
     }, function() { 
      $(".back-img").addClass("lock-up"); 
      $(".logbox").addClass("logboxinfead"); 
      setTimeout(function() { 
       $(".data-lock").animate({ 
        bottom: '0' 
       }, function() { 
        $(".back-img").removeClass("lock-up"); 
        $(".logbox").removeClass("logboxinfead"); 
       }); 
      }, 30000); 
     }); 
    }); 
    var idleInterval = setInterval(timerIncrement(), 60000); // 1 minute 

    //Zero the idle timer on mouse movement. 
    $(this).mousemove(function(e) { 
     idleTime = 0; 
    }); 
    $(this).keypress(function(e) { 
     idleTime = 0; 
    }); 
}); 

function timerIncrement() { 
    idleTime = idleTime + 1; 
    if (idleTime > 19) { // 20 minutes 
     window.location.reload(); 
    } 
}); 
+0

関連するHTMLコードを貼り付けて、簡単に「コピー&ペースト」することができますか? – OscarAkaElvis

答えて

0

タイマーを停止するには、次のように 'clearInterval'を呼び出す必要があります。また、私は 'mousemove'を以下の 'click'に変更しました。

$(this).click(function (e) { 
     idleTime = 0; 
     if(idleInterval) { 
      clearInterval(idleInterval); 
      idleInterval = null; 
     } 
    }); 
    $(this).keypress(function (e) { 
     idleTime = 0; 
     if(idleInterval) { 
      clearInterval(idleInterval); 
      idleInterval = null; 
     } 
    }); 
関連する問題