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

Mod*_*ner 11 javascript mouse jquery plugins

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

Fel*_*ing 27

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

var timeout = null;

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

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

DEMO

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


Nie*_*sol 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);
})();
Run Code Online (Sandbox Code Playgroud)