Domanda

Sto cercando di creare un conto alla rovescia usando JavaScript. Ho ricevuto del codice da qui e l'ho modificato leggermente.

<script type="text/javascript">
var c=10, t;

function timedCount() {
  document.getElementById('txt').value=c;
  c=c-1;
  t=setInterval("timedCount()",1000);
}

function stopCount() {
  clearInterval(t);
}
</script>

Devo chiamare ripetutamente un conto alla rovescia finché l'utente non fa clic su un collegamento. Dovrebbe essere eseguito il conto alla rovescia da 10 a 1 ogni secondo (10,9,8,7,6 ... 0) fino a quando non si fa clic sul collegamento, ma non lo fa. Qualcuno può aiutarmi?

EDIT: Qualcuno sa come riavviare il conto alla rovescia una volta che ha raggiunto 0?

Grazie in anticipo.

È stato utile?

Soluzione

<script type="text/javascript">
var c=10;
var t;
function timedCount()
{
    document.getElementById('txt').value=c;
    c=c-1;
}
function startCount()
{
    if (!t) t=setInterval("timedCount()",1000);
}
function stopCount()
{
    clearInterval(t);
    t=null;
}
</script>

Chiama startCount() in onload (o qualsiasi altra cosa) quando vuoi che il contatore inizi. Nota i miei startCount e stopCount non creano timer a intervalli multipli.

Inoltre, l'elemento con id = txt deve essere una casella <input> o <textarea> affinché il codice funzioni. Se è un intervallo, dovresti usare document.getElementById('txt').innerHTML=c;

Infine, potresti voler timedCount () per stopCount () se c scende sotto zero. Questo è abbastanza facile:

if (c <= 0) stopCount();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top