我想知道是否有办法在jQuery中检测鼠标是否空闲3秒钟。有没有我不知道的插件?因为我不相信有一个原生的jQuery方法。任何帮助将不胜感激!
答案 0 :(得分:26)
您可以收听mousemove
事件,并在事件发生时启动超时并取消任何现有超时。
var timeout = null;
$(document).on('mousemove', function() {
clearTimeout(timeout);
timeout = setTimeout(function() {
console.log('Mouse idle for 3 sec');
}, 3000);
});
这也可以在没有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);
})();