我有一个java脚本函数,我已调用body load mousemove()函数正在运行,但问题是函数没有重载。这是代码:
function timeout(){
setTimeout ("logout()",60000);
}
function logout()
{
parent.parent.location="logout.php";
}
<body onmousemove="timeout()" >
现在的问题是它调用了主体加载,并且只要鼠标移动但页面仍然在指定的时间后移动到注销页面,但它应该覆盖鼠标移动和函数调用时的时间。
答案 0 :(得分:3)
每次拨打setTimeout
时,都会向队列添加另一个呼叫。换句话说,您没有替换当前超时。要解决此问题,您需要在启动另一个事件之前取消现有超时事件,方法是调用clearTimeout
,并调用之前调用setTimeout
的值。
var timeoutID = null;
function timeout() {
if (timeoutID !== null) {
clearTimeout(timeoutID);
}
timeoutID = setTimeout(logout, 60000);
}
我还将调用更改为setTimeout
以传递对logout
函数的引用而不是字符串。最好避免传递字符串,因为它使用eval
并且不是必需的。