仅在没有鼠标事件时更新页面

时间:2016-02-23 14:13:37

标签: javascript jquery html

我想只在没有鼠标事件的情况下更新页面, 如:

function TimedRefresh(t) {
    $('#colorbox').mousemove(event) {
        if (mousemove != 0) { //(mousemove == false)
            setTimeout("location.reload(false);", t);
        }
    }
}

它当然不起作用。它被称为:

<body onload="JavaScript:TimedRefresh(5000);">

3 个答案:

答案 0 :(得分:1)

你这样做

$('#colorbox').mousemove(function( event ) {

    clearTimeout( $(this).data('timer') );

    $(this).data('timer', setTimeout(function() {
        window.location.reload();
    }, 5000));
});

当鼠标在#colorbox元素内移动时,计时器将被重置,如果未检测到鼠标移动,则会在5秒内重新加载页面。

FIDDLE

答案 1 :(得分:1)

你需要扭转逻辑。设置页面的定时器onload,然后在移动鼠标时清除/重新启动它。如果鼠标移动时间不超过5秒,则页面将刷新:

$(document).ready(function() {
    var timer;
    resetTimer();

    $('#colorbox').mousemove(function() {
        resetTimer(timer);
    });

    function resetTimer() {
        clearTimeout(timer);
        timer = setTimeout(function() {
            window.location.reload(false);
        }, 5000);
    }
});

Working example

答案 2 :(得分:0)

我认为你应该这样做:

  1. 使用默认值(可能为0)创建隐藏字段。
  2. 当触发某些MouseEvent时,你应该更改隐藏字段的值(可能是1)
  3. 然后,对于另一方面,我认为您可以使用 setTimeout 之类的功能来比较和刷新您的页面。 Here you can read more about this function