javascript - 用户空闲超时只执行一次函数

标签 javascript jquery

我想在用户空闲超时 5 秒时显示报价横幅,但是以下代码每空闲 5 秒显示一次报价横幅。但是我只想在第一个空闲 5 秒内执行一次以下功能。任何人都可以帮助我

$(document).ready(function(){

           idleTime = 0;        


           //Increment the idle time counter every five second.
           var idleInterval = setInterval(timerIncrement, 5000);

           function timerIncrement()
           {
             console.log(idleTime++);
             if (idleTime > 5)
             {
               doPreload();     

             }
           }

           //Zero the idle timer on mouse movement.
           $(this).mousemove(function(e){

                 idleTime = 0;

           });

           function doPreload()
           {
             $('#add-click').click();

           }   

        });

最佳答案

你只使用鼠标移动,如果用户使用键盘你还必须检查一下怎么办

var inactivityTime = function () {
var temp;
window.onload = resetTimer;
document.onmousemove = resetTimer;
document.onkeypress = resetTimer;

function resetTimer() {
    clearTimeout(temp);
    temp = setTimeout(logout, 3000)
    // 1000 milisec = 1 sec
 }
};

关于javascript - 用户空闲超时只执行一次函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42366170/

相关文章:

javascript - 在隐藏和显示 div 之间切换会使我成为垃圾邮件发送者?

javascript - 当浏览器窗口调整到特定宽度时禁用浏览器窗口调整大小

javascript - 平滑地动画封面大小的背景

javascript - wrapAll 不换行纯文本

javascript - 带有 on() 和绑定(bind)的悬停回调函数?

javascript - 使用 codeigniter 从数据库中选择相关选项

Javascript Caesar Cypher 只输出空字符串

javascript - 如何为流类型设置 'rest' 参数

c# - 使用 Javascript 过滤 GridView

javascript - Mobile Safari - iframe 固定内容