2011-01-19 15 views
124

मैं widget.Rotator.rotate() चाहते कॉल के बीच 5 सेकंड ... कैसे मैं jQuery में ऐसा करते देरी करने के लिए जा ... यह jQuery के delay() की तरह लगता है इस के लिए काम नहीं करेंगे ...मैं 5 सेकंड के लिए फ़ंक्शन कॉल में देरी कैसे करूं?

+3

, आप चाहते हैं यह स्वचालित रूप से आमंत्रण के बीच 5 सेकंड की देरी के साथ कहा जा करो या इसे प्रतिक्रिया में बुलाया जाएगा उपयोगकर्ता कार्रवाई के लिए और आप यह सुनिश्चित करना चाहते हैं कि फिर से जाने से पहले अंतिम आमंत्रण के बाद कम से कम 5 सेकंड प्रतीक्षा करें? यदि उत्तरार्द्ध, क्या उपयोगकर्ता को घटनाओं को कतारबद्ध करने में सक्षम होना चाहिए, या अगर 5 सेकंड समाप्त नहीं हो जाते हैं तो इनपुट को अनदेखा किया जाना चाहिए? – Phrogz

उत्तर

269

आप सादे जावास्क्रिप्ट का उपयोग कर सकते, इस एक बार your_func फोन करेगा, 5 सेकंड के बाद: अपने कार्य कोई पैरामीटर है और कोई स्पष्ट रिसीवर आप कॉल कर सकते हैं सीधे setTimeout(func, 5000)

भी मैं एक बार उपयोग किया है एक प्लगइन है

setTimeout(function() { your_func(); }, 5000); 

हैं। इसमें oneTime और everyTime विधियां हैं।

+24

यदि कोई फ़ंक्शन पैरामीटर नहीं है, तो 'फ़ंक्शन' में लपेटने की कोई आवश्यकता नहीं है - यह ठीक होगा: 'सेटटाइमआउट (your_func, 5000); ' – Oded

+1

@ ओडेड क्या आप सुनिश्चित हैं कि' Rotator.rotate()' नहीं है रिसीवर को 'रोटेटर' पर सेट करने की आवश्यकता है? यदि आप जो सुझाव देते हैं उसके बारे में बताते हैं, तो यह खिड़की होगी। – Phrogz

+1

@Phrogz - मैं 'setTimout' के यांत्रिकी के बारे में बात कर रहा था। – Oded

18
var rotator = function(){ 
    widget.Rotator.rotate(); 
    setTimeout(rotator,5000); 
}; 
rotator(); 

या:

setInterval(
    function(){ widget.Rotator.rotate() }, 
    5000 
); 

या:

setInterval(
    widget.Rotator.rotate.bind(widget.Rotator), 
    5000 
); 
संबंधित मुद्दे