2017-07-20 1 views
0

Ich lerne etwas JavaScript und experimentiere mit einem einfachen Countdown-Timer. Der Countdown schlägt fehl, wenn ich checkTime() in die Funktion timeedCount() einfüge. Ich möchte, dass das Skript eine Nachricht im 'warning' div anzeigt, wenn die verbleibenden Sekunden (var c) eine gegebene Ganzzahl sind (in diesem Fall 100 Sekunden). Wenn ich die Funktion checkTime() einfüge, zeigt das Skript 100 an und stoppt. Es macht dasselbe, wenn ich die Funktion innerhalb der Funktion timeCount() einfüge. Ich bin ratlos!einfacher Timer - warum schlägt ein Funktionsaufruf innerhalb einer Funktion mit setTimeout() fehl?

var c = 120; 
 
var t; 
 
var timer_is_on = 0; 
 
start.onclick = startCount; 
 
reset.onclick = resetCount; 
 

 
function timedCount() { 
 
    document.getElementById("clock").innerHTML = c; 
 
    c = c - 1; 
 
    checkTime(); 
 
    t = setTimeout(function() { 
 
    timedCount() 
 
    }, 1000); 
 
} 
 

 
function startCount() { 
 
    if (!timer_is_on) { 
 
    timer_is_on = 1; 
 
    timedCount(); 
 
    document.getElementById('start').style.display = 'none'; 
 
    document.getElementById('reset').style.display = 'none'; 
 
    document.getElementById('stop').style.display = 'block'; 
 
    } 
 
} 
 

 
function stopCount() { 
 
    clearTimeout(t); 
 
    timer_is_on = 0; 
 
    document.getElementById('start').style.display = 'block'; 
 
    document.getElementById("start").innerHTML = "Resume"; 
 
    document.getElementById('reset').style.display = 'block'; 
 
    document.getElementById('stop').style.display = 'none'; 
 

 
} 
 

 
function resetCount() { 
 
    clearTimeout(t); 
 
    c = 0; 
 
    timer_is_on = 0; 
 
    document.getElementById("txt").value = 0; 
 
    document.getElementById('start').style.display = 'block'; 
 
    document.getElementById("start").innerHTML = "Start!"; 
 

 
} 
 

 
function checkTime() { 
 
    if (c = 100) { 
 
    document.getElementById("warning").innerHTML = "Time nearly up!"; 
 
    } 
 
}
<div style="font-size:30px;"><span id="clock">0</span> 
 
    <span>:seconds</span></div> 
 
<div id="warning"></div> 
 
<button id="start">Start count!</button> 
 
<button id="stop" onclick="stopCount()">Pause!</button> 
 
<button id="reset">Reset!</button>

+3

'c = 100' ist Zuweisung' c == 100' testet auf Gleichheit; 'c === 100' testet auf Typ und Gleichheit – mplungjan

+1

Es ist eine TYPO,' if (c = 100) {'sollte' if (c === 100) {' – adeneo

+0

danke. Es ist die 5 Uhr Starts, die es tun. Ich liebe diese Seite. –

Antwort

0

(c = 100) sollte (c === 100) sein, versuchen Sie einstellen, wenn Sie für die Gleichstellung überprüfen bedeuten.

Verwandte Themen