2009-10-09 16 views
20

मैं प्रत्येक 5 सेकंड में doSomething() फ़ंक्शन दोहरा सकता हूं।हर 5 सेकंड में कुछ करें और इसे रोकने के लिए कोड करें। (JQuery)

मुझे कोड की भी आवश्यकता है जो इसे करने से रोक देगा।

और ऑन-द-फ्लाई कोड को आवृत्ति समायोजित करें।

उत्तर

34

setTimeout() केवल आदेश एक बार का शुभारंभ करेंगे। इस मामले में, setInterval() आपका दोस्त है।

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) 
} 
कोड से

...

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

मैं आवृत्ति पर फ्लाई आवृत्ति कैसे समायोजित करूं? और कौन सा कोड सेट अंतराल()? – steven

+0

ठीक है स्पष्ट अंतराल इसे रोकता है, लेकिन आवृत्ति के बारे में क्या? – steven

+0

आवृत्ति फ़ंक्शन का दूसरा तर्क है। ट्यूटोरियल के लिंक देखें। – pixeline

0

आप इसके लिए setTimeout() का उपयोग कर सकते हैं।

http://www.w3schools.com/htmldom/met_win_settimeout.asp

+0

मैं इसे कैसे रोक सकता हूं? और मैं आवृत्ति पर फ्लाई आवृत्ति कैसे समायोजित करूं? – steven

2
+1

नवीनतम संस्करण jQuery प्लगइन्स साइट पर उपलब्ध है। http://plugins.jquery.com/project/timers –

7

उपयोग

setInterval

कॉल की कोशिश करो प्रत्येक कॉल के बीच पर फ़ंक्शन के साथ निश्चित समय विलंब के साथ बार-बार एक फ़ंक्शन।

दोहराया कार्रवाई के लिए

और

clearInterval

दोहराया कार्रवाई जो setInterval का उपयोग कर स्थापित किया गया था अप रद्द()।

को रोकने के लिए है कि

+0

ठीक स्पष्ट अंतराल इसे रोकता है, लेकिन आवृत्ति को बदलने के बारे में क्या? – steven

+0

आप सेट इंटरवल – rahul

+0

में देरी बदल सकते हैं लेकिन अंतराल प्रगति पर होने पर मैं freq कैसे बदल सकता हूं? – 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

के साथ नया बनाना चाहिए। बंद करें, फ्लाई पर आवृत्ति नहीं बदलता है लेकिन मुझे यकीन नहीं है कि अब यह संभव है या नहीं। – steven

संबंधित मुद्दे