如果有点击或鼠标移动事件,则每2分钟检查一次jquery

时间:2013-05-13 18:39:45

标签: jquery setinterval

我需要在10分钟不活动后刷新页面。

我的意思是不活动:没有鼠标移动和/或没有点击身体

这是我到目前为止(那段代码工作正常)

idleTime = 0;

function timerIncrement() {
    idleTime = idleTime + 1;

    if (idleTime > 10) {
    window.location.reload();
    }
}

$j(document).ready( function(e) {
    var idleInterval = setInterval("timerIncrement()", 60000); // 1 min

    $j(this).mousemove(function () {
        idleTime = 0;
    });

    $j(this).click(function () {
        idleTime = 0;
    });
}

我不喜欢这里的事实是它在每次mousemove事件中重置计时器。我担心表现。

我想要的是:如果鼠标位置发生变化,每2分钟检查一次。如果是增量计时器。不知道怎么做。

任何帮助?

1 个答案:

答案 0 :(得分:0)

你可以添加一个标志变量(例如:hasMouseMoved,在mousemove hander上更新它然后remove the event handler,然后每当计时器触发时将代码更改为:

if ((idleTime > 10) || (idleTime%2==0 && hasMouseMoved))
{
      window.location.reload();
}