我想知道是否有一种方法可以检测鼠标在 jQuery 中是否空闲 3 秒。有没有我不知道的插件?因为我不相信会有原生的 jQuery 方法。任何帮助将非常感激!
问问题
16309 次
2 回答
30
您可以监听mousemove
事件,在它发生时启动超时并取消任何现有的超时。
var timeout = null;
$(document).on('mousemove', function() {
clearTimeout(timeout);
timeout = setTimeout(function() {
console.log('Mouse idle for 3 sec');
}, 3000);
});
这在没有 jQuery 的情况下也可以很容易地完成(这里仅绑定事件处理程序是 jQuery 特定的)。
于 2012-12-30T20:19:37.260 回答
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);
})();
于 2012-12-30T20:19:29.727 回答