2009-10-09 8 views

Antwort

34

setTimeout() nur den Befehl starten einmal. In diesem Fall ist setInterval() dein Freund.

var iFrequency = 5000; // expressed in miliseconds 
var myInterval = 0; 

// STARTS and Resets the loop if any 
function startLoop() { 
    if(myInterval > 0) clearInterval(myInterval); // stop 
    myInterval = setInterval("doSomething()", iFrequency); // run 
} 

function doSomething() 
{ 
    // (do something here) 
} 

von Code ...

<input type="button" onclick="iFrequency+=1000; startLoop(); return false;" 
     value="Add 1 second more to the interval" /> 
+0

Wie stelle ich die Frequenz während der Fahrt ein? Und welcher Code wird setInterval() stoppen? – steven

+0

Ok clearInterval stoppt es, aber was ist mit der Frequenz? – steven

+0

Die Frequenz ist das zweite Argument der Funktion. Siehe den Link zum Tutorial. – pixeline

2

Versuchen jQuery Timers

+1

Die neueste Version ist auf der Site jQuery Plugins verfügbar. http://plugins.jquery.com/project/timers –

7

Verwenden

setInterval

fordert eine Funktion wiederholt, mit einer festen Zeitverzögerung zwischen jedem Anruf zu dieser Funktion.

für wiederholte Aktion und

clearInterval

Bricht wiederholte Aktion, die sich mit der setInterval() gesetzt wurde.

zu stoppen, dass

+0

Ok clearInterval stoppt es, aber was ist mit der Frequenz? – steven

+0

Sie können die Verzögerung im setInterval – rahul

+0

ändern, aber wie kann ich die Frequenz ändern, wenn das Intervall läuft? – steven

0
<script type="text/javascript"> 
var t; var timer_is_on=0; var timeout=5000; 

function timedCount() { 
    doSomeThing(); 
    t = setTimeout("timedCount()",timeout); 
} 

function doTimer() { 
    if (!timer_is_on) { 
    timer_is_on=1; 
    timedCount(); 
    } 
} 

function stopCount() { 
    clearTimeout(t); 
    timer_is_on=0; 
} 
function changeFreq() { 
    timeout = 2000; 
} 
</script> 
+0

nett. Schließen, ändert nicht die Frequenz im laufenden Betrieb, aber ich bin mir nicht sicher, ob das jetzt möglich ist. – steven

Verwandte Themen