在用户键入或单击屏幕时重置计时器

时间:2016-11-09 19:23:27

标签: javascript jquery timeout reset

我想在用户输入输入或点击屏幕时重置计时器。 这是我的代码,但它没有重置计时器。 你能告诉我问题在哪里,我该如何解决?

$(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();
    }
});

1 个答案:

答案 0 :(得分:0)

你必须打电话给'clearInterval'停止计时器如下。我也改变了'mousemove'点击'点击'下方。

$(this).click(function (e) {
        idleTime = 0;
        if(idleInterval) {
           clearInterval(idleInterval);
           idleInterval = null;
        }
    });
    $(this).keypress(function (e) {
        idleTime = 0;
        if(idleInterval) {
           clearInterval(idleInterval);
           idleInterval = null;
        }
    });