Javascript函数调用体载

时间:2009-11-08 07:34:26

标签: javascript

我有一个java脚本函数,我已调用body load mousemove()函数正在运行,但问题是函数没有重载。这是代码:

 function timeout(){  
        setTimeout ("logout()",60000);

        }
     function logout()
        {    
         parent.parent.location="logout.php";
         } 

<body onmousemove="timeout()" >

现在的问题是它调用了主体加载,并且只要鼠标移动但页面仍然在指定的时间后移动到注销页面,但它应该覆盖鼠标移动和函数调用时的时间。

1 个答案:

答案 0 :(得分:3)

每次拨打setTimeout时,都会向队列添加另一个呼叫。换句话说,您没有替换当前超时。要解决此问题,您需要在启动另一个事件之前取消现有超时事件,方法是调用clearTimeout,并调用之前调用setTimeout的值。

var timeoutID = null;
function timeout() {
    if (timeoutID !== null) {
        clearTimeout(timeoutID);
    }
    timeoutID = setTimeout(logout, 60000);
}

我还将调用更改为setTimeout以传递对logout函数的引用而不是字符串。最好避免传递字符串,因为它使用eval并且不是必需的。