使用addEventListener Javascript重置设置超时
我试图做一个功能,当点击鼠标时,可以看到你是活跃的或AFK。时间用完时,此人必须处于脱机状态。如果该用户在时间用完后再次单击,则该用户必须重新联机。此外,如果他在时间内再次单击,则必须始终重置时间,以便您可以看到他在页面上处于活动状态。有人知道我需要在这里调整什么才能让它工作吗使用addEventListener Javascript重置设置超时,javascript,jquery,settimeout,Javascript,Jquery,Settimeout,我试图做一个功能,当点击鼠标时,可以看到你是活跃的或AFK。时间用完时,此人必须处于脱机状态。如果该用户在时间用完后再次单击,则该用户必须重新联机。此外,如果他在时间内再次单击,则必须始终重置时间,以便您可以看到他在页面上处于活动状态。有人知道我需要在这里调整什么才能让它工作吗 var time; window.addEventListener('click', function() { time = setTimeout(function() { SaveUrl('Save/
var time;
window.addEventListener('click', function() {
time = setTimeout(function() {
SaveUrl('Save/SetIsOnlineUser', { isOnline: false });
}, 20000);
})
window.addEventListener("click", myFunction);
function myFunction() {
clearTimeout(time)
SaveUrl('Save/SetIsOnlineUser', { isOnline: true });
}
当您在同一事件下运行的两个处理程序下运行相反的逻辑时,您的逻辑是有缺陷的 要解决这个问题,您需要使用单个事件处理程序。您可以在单击处理程序中立即将用户设置为联机,然后在N秒后设置超时以将其标记为脱机,如下所示:
var时间;
window.addEventListener('click',function(){
清除超时(时间)
SaveUrl('Save/SetIsOnlineUser'{
isOnline:对
});
time=setTimeout(函数(){
SaveUrl('Save/SetIsOnlineUser'{
isOnline:错误
});
}, 5000);
})
函数SaveUrl(u,o){
console.log('Online:',o.isOnline);
}