jQuery - 检测'x'分钟没有动作并在该事件上运行函数(在X分钟内没有事件)

时间:2011-08-11 13:28:04

标签: jquery

如何检测该用户对此事件的“X”分钟和运行功能没有做任何操作?

E.G。

if( // no action from user for 'X' minutes) { //do stuff } ??

任何建议都非常感谢。

2 个答案:

答案 0 :(得分:17)

<强> Live Demo

与其他人一样,使用setTimeout并将其设置为所需的等待时间。如果有任何活动,只需使用clearTimeout清除超时。

// If theres no activity for 5 seconds do something
var activityTimeout = setTimeout(inActive, 5000);

function resetActive(){
    $(document.body).attr('class', 'active');
    clearTimeout(activityTimeout);
    activityTimeout = setTimeout(inActive, 5000);
}

// No activity do something.
function inActive(){
    $(document.body).attr('class', 'inactive');
}

// Check for mousemove, could add other events here such as checking for key presses ect.
$(document).bind('mousemove', function(){resetActive()});

答案 1 :(得分:6)

设置X分钟的超时时间。

<body>的keydown和mousemove事件中,清除超时并重新设置。