2016-07-09 11 views
0

Vielleicht nur Schlafentzug, aber ich kann nicht verstehen, was ich falsch mache.SetTimeout und ClearTimeout (Löscht nicht bei 0)

Ich rufe eine countDown Funktion onLoad mit setInterval.

Innerhalb der countDown Funktion clearTimeout ich anrufen, wenn die Zahl 0 erreicht, außer es heißt, wenn es 2 erreicht

Was mache ich falsch?

Hier ist ein Ausschnitt.

var interval, count = 5; 
 

 
countDown() 
 
interval = setInterval(countDown, 1000); 
 

 
function countDown() { 
 
    document.body.innerHTML = count 
 
    count-- 
 

 
    if(count === 0) { 
 
    clearInterval(interval) 
 
    document.body.innerHTML = "Redirecting to ....." 
 
    } 
 
}

Antwort

1
function countDown() { 
    document.body.innerHTML = count; 
    if(count === 0) { 
    clearInterval(interval) 
    document.body.innerHTML = "Redirecting to ....."; 
    } else { 
    count--; 
    } 
} 
+0

Ich werde in der Lage sein, in 4 Minuten zu akzeptieren. Gott, ich fühle mich heute dumm. Das letzte Mal versuche ich 3 Tage ohne Schlaf zu programmieren. –

+0

Während dieser Code die Frage beantworten kann, würde das Bereitstellen eines zusätzlichen Kontextes, der angibt, wie und/oder warum er das Problem löst, den langfristigen Wert der Antwort verbessern. – HiDeo

1

Dies ist, weil Sie den Zähler zuerst abnehmen und dann die Bewertung aufgrund dieser 1 Schritt verpasst

var interval, count = 5; 
 

 
countDown(); 
 
interval = setInterval(countDown, 1000); 
 

 

 
function countDown() { 
 
    
 

 
    if(count === 0) { 
 
    clearInterval(interval) 
 
    document.body.innerHTML = "Redirecting to ....." 
 
    } 
 
    else 
 
    { 
 
    document.body.innerHTML = count 
 
    count-- 
 
    } 
 
}

1

Nur lege das count-- nach der if-Anweisung und eine return; am Ende der if-Anweisung, wenn Sie die Ausführung danach blockieren möchten.

var interval, count = 5; 
 

 
countDown() 
 
interval = setInterval(countDown, 1000); 
 

 
function countDown() { 
 
    document.body.innerHTML = count; 
 
    
 

 
    if(count === 0) { 
 
    clearInterval(interval); 
 
    document.body.innerHTML = "Redirecting to ....."; 
 
    return; 
 
    } 
 
    count-- 
 
}

Verwandte Themen