2017-10-14 85 views
0

我正在處理我的個人項目,並在清除後恢復setInterval時遇到問題。清除後調用setInterval間隔

var interval = setInterval(function() { 
    elem=document.getElementsByClassName('element')[0]; 
    if (typeof elem == 'undefined') 
    { 
     return; 
    } 
    clearInterval(interval); 
    //my code 
    //element is undefined again 
    return setInterval(interval) //Want to start setInterval again, but nothing happens 
}, 10); 
+2

你必須重新設置它。間隔不能恢復。 – fdelia

+1

'return setInterval(interval)'在你的代碼中變成'setInterval(setInterval(interval))' – dhilt

回答

1

interval變量只是存儲您的間隔的ID,這樣你就可以輕鬆地將其清除以後。它不會存儲你的功能。

對於工作,存儲您的間隔功能的變量,因此您可以像這樣重新啓動:

var interval; 
var intervalCallback = function() { 
    elem = document.getElementsByClassName('element')[0]; 
    if (typeof elem == 'undefined') { 
    return; 
    } 
    clearInterval(interval); 
    interval = setInterval(intervalCallback, 10); 
}; 
interval = setInterval(intervalCallback, 10);