2016-04-06 6 views
-1

Ich versuche, einen 30-Sekunden-Countdown auf ein Span-Element (#thirty) zu machen, das beim Klicken auf ein anderes Element (#start) gestartet wird. Es scheint nicht zu funktionieren. Ich würde Ihre Hilfe schätzen.Wie verwendet man setTimeout mit einer "do while" -Schleife in Javascript?

var countdown = function() { 
    setTimeout(function() { 
    var i = 30; 
    do { 
     $("#thirty").text(i); 
     i--; 
    } while (i > 0); 
    }, 1000); 
} 

$("#start-timer").click(countdown()); 
+1

'$ ("# start-timer") klicken (Countdown);' –

+0

Sie sollten einen Timer verwenden.. Werfen Sie einen Blick auf diesen Beitrag: http://StackOverflow.com/Questions/20618355/the-simplet-possible-Javascript-countdown-timer – Sparrow

+1

Zusätzlich zu @ Raj Kommentar, verwenden Sie 'setInterval()', setzen 'var i = 30 'außerhalb des Callbacks, entfernen Sie die 'do/while'-Schleife und' clearInterval (intervalvalId) ', wenn' i === 0'. –

Antwort

-1

Verwendung dieses:

var i = 30; 
var countdown = function() { 
    var timeout_ = setInterval(function() { 
     $("#thirty").text(i); 
     i--; 
     if(i==0){ 
     i = 30; 
     clearInterval(timeout_); 
     } 
    }, 1000); 
} 

$("#start-timer").click(countdown); 
+0

ja @KevinB. Sie haben Recht – Sandeep

+1

Fügen Sie diesem Code einen Kontext hinzu. – ppperry