2009-11-08 32 views
0

我有一個java腳本函數,我已經調用身體負載mousemove()函數正在工作,但問題是,該函數沒有超載。下面是代碼:對身體負載的Java腳本函數調用

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

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

<body onmousemove="timeout()" > 

現在的問題是它調用的身體負荷,只要鼠標移動,但是網頁仍然移至登出頁面指定的時間後,但它應該覆蓋的時間,只要鼠標移動和功能調用。

+0

發表更多代碼 – Sam152

回答

3

每當您撥打setTimeout時,它會向隊列添加另一個呼叫。換句話說,你並沒有取代當前的超時時間。要解決這個問題,您需要先取消現有的超時事件,然後再撥打clearTimeout,然後再撥打setTimeout

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

我也改變調用setTimeout傳遞給logout函數,而不是一個字符串的引用。最好避免傳遞一個字符串,因爲它使用eval而不是必需的。