2017-10-14 11 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); 
関連する問題