我希望在用户空闲超时5秒时显示提供横幅,但是下面的代码每隔5秒钟显示一次提供横幅。但是我想在第一次空闲5秒时执行以下功能一次。任何身体帮助我< / p>
$(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();
}
});
答案 0 :(得分:2)
你只使用鼠标移动如果使用键盘的用户你必须检查
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
}
};
答案 1 :(得分:1)
您需要使用setTimeout
代替setInterval
window.setTimeout(function(){
timerIncrement();
}, 5000);
这只会执行一次。
答案 2 :(得分:0)
为什么不尝试setTimeout而不是setInterval?
答案 3 :(得分:0)
将此函数中的逻辑更正为:
var idleInterval = setInterval(timerIncrement, 1000);
function timerIncrement() {
console.log(idleTime++);
if (idleTime == 5) {
doPreload();
idleTime = 0; // reset idleTime variable
}
}
/** This will increase counter by one every second,
* and if counter reaches to 5 then call to banner
* display and reset counter.
*/