jQuery - 检测鼠标是否仍然存在?

时间:2012-12-30 20:16:04

标签: javascript jquery plugins mouse

我想知道是否有办法在jQuery中检测鼠标是否空闲3秒钟。有没有我不知道的插件?因为我不相信有一个原生的jQuery方法。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:26)

您可以收听mousemove事件,并在事件发生时启动超时并取消任何现有超时。

var timeout = null;

$(document).on('mousemove', function() {
    clearTimeout(timeout);

    timeout = setTimeout(function() {
        console.log('Mouse idle for 3 sec');
    }, 3000);
});

DEMO

这也可以在没有jQuery的情况下轻松完成(这里只绑定事件处理程序是特定于jQuery的。)

答案 1 :(得分:9)

不需要插件,甚至根本不需要jQuery:

(function() {
    var idlefunction = function() {
          // what to do when mouse is idle
        }, idletimer,
        idlestart = function() {idletimer = setTimeout(idlefunction,3000);},
        idlebreak = function() {clearTimeout(idletimer); idlestart();};
    if( window.addEventListener)
        document.documentElement.addEventListener("mousemove",idlebreak,true);
    else
        document.documentElement.attachEvent("onmousemove",idlebreak,true);
})();