2012-01-24 24 views
5

मैं प्रत्येक 3 सेकंड में एक jQuery फ़ंक्शन कैसे कॉल करूं?मैं 15 सेकंड के लिए प्रत्येक 3 सेकंड में फ़ंक्शन कैसे कॉल कर सकता हूं?

$(document).ready(function() 
{ 
    //do stuff... 

    $('post').each(function() 
    { 
     //do stuff... 
    }) 

    //do stuff... 
}) 

मैं उस कोड को 15 सेकंड की अवधि के लिए चलाने की कोशिश कर रहा हूं।

+0

Google "setInterval"। – j08691

उत्तर

11
जवाब में से कोई भी

अब तक खाता है कि यह केवल 15 सेकंड के लिए होने के लिए और फिर बंद करना चाहता है में रखना ...

$(function() { 
    var intervalID = setInterval(function() { 
     // Do whatever in here that happens every 3 seconds 
    }, 3000); 
    setTimeout(function() { 
     clearInterval(intervalID); 
    }, 18000); 
}); 

यह एक अंतराल (हर 3 सेकंड) बनाता है चलाता है कि जो कुछ भी कोड डाल समारोह में 15 सेकंड के बाद अंतराल नष्ट हो जाता है (प्रारंभिक 3 सेकंड देरी होती है, इसलिए 18 सेकंड समग्र रनटाइम)।

+1

+1, लेकिन आप शायद '15000' कुछ हद तक बढ़ाना चाहते हैं; अन्यथा समारोह शायद चार बार चलाएगा, और मैं अनुमान लगा रहा हूं कि यह पांच बार चलाया जा सकता है। – ruakh

+0

अच्छा बिंदु - यह कम से कम 18000 होना चाहिए। उत्तर संशोधित - धन्यवाद :) – Archer

+0

एर, मैं '15500' की तरह सोच रहा था - त्रुटि का एक अच्छा मार्जिन देने के लिए पर्याप्त है। – ruakh

0

आप सेटटाइमआउट विधि का भी उपयोग कर सकते हैं, जो टाइमर को रद्द करने जैसी चीजों का समर्थन करता है।

देखें: http://msdn.microsoft.com/en-us/library/ie/ms536753(v=vs.85).aspx

+0

इसे कम न करें, इसका उपयोग रिकर्सिव कॉल के साथ किया जा सकता है। हालांकि इस मामले में setinterval अधिक सही है। साइमन: एक स्पष्ट अंतराल विधि के साथ ही btw :) – Johan

+0

+1 है। 'सेटटाइमआउट' वास्तव में बेहतर है। – Aliostad

+0

हाँ, बकवास उत्तर ... हटाना :-) – Simon

0
setInterval(function() { 
     // Do something every 3 seconds 
}, 3000); 
0

setInterval समारोह का उपयोग करें।

var doPost = function() { 
    $('post').each(function() { 
    ... 
    }); 
}; 
setInterval(function() { doPost(); }, 3000); 
1

आप एक समारोह को चलाने के लिए के बाद एक्स मिलीसेकेंड बीत चुके हैं setTimeout उपयोग कर सकते हैं।

var timeout = setTimeout(function(){ 
    $('post').each(function(){ 
     //do stuff... 
    }); 
}, 3000); 

या, setInterval एक समारोह हर एक्स मिलीसेकेंड चलाने के लिए।

var interval = setInterval(function(){ 
    $('post').each(function(){ 
     //do stuff... 
    }); 
}, 3000); 

setTimeout और setInterval वापसी आईडी, इन टाइमआउट/अंतराल clearTimeout या clearInterval का उपयोग कर साफ करने के लिए इस्तेमाल किया जा सकता।

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